目录
一、实现两个字符串数组的逆序排序,输出结果为字符串数组
解题思路:
定义一个方法,接受字符串类型的参数,首先利用lengrh()求出字符串的长度,然后利用toCharArray()方法将字符串转化为数组,再利用for循环,对字符数组进行逆序,最后利用valueof()将字符数组变回字符串。
具体代码:
//字符串逆序
String arr1="你是年少的欢喜";
String arr2="你是心中的爱恋";
System.out.println(stringReverse(arr1));
System.out.println(stringReverse(arr2));
public static String stringReverse(String arr){
int len=arr.length();//字符串的长度
char[] c =arr.toCharArray();//将字符串转化为字符数组
for(int i=0;i<len/2;i++){//对字符数组进行逆序
char tmp=c[i];
c[i]=c[len-i-1];
c[len-i-1]=tmp;
}
return String.valueOf(c);//将字符数组转回字符串并返回
}
运行截图:
二、求两个整形数组的交集
解题思路:
利用两个for循环,外层循环遍历第一个数组,内层循环遍历第二个数组,内部判断两个元素是否相同,相同则输出。
具体代码:
//求整形数组的交集
int[] arr3={2,3,7,8,1};
int[] arr4={1,4,6,8,2};
intersection(arr3,arr4);
public static void intersection(int[] arr3,int[] arr4){
for (int i :arr3)//遍历第一个数组
for (int j :arr4) {//遍历第二个数组
if (i==j) {//对比是否存在相同元素,存在则输出
System.out.println(i);
break;
}
}
}
运行截图:
三、求两个浮点型数组的并集
解题思路:
利用集合的特性:元素无序且不能重复。通过向第一个集合中添加第二个集合的元素,最终求得并集。
具体代码:
//求浮点型数组的并集
Double[] arr5= {2.1, 3.5, 1.4, 6.4, 7.3};
Double[] arr6= {1.3, 6.4, 3.2, 5.5, 1.5};
System.out.println(Arrays.toString(union(arr5, arr6)));
public static Double[] union(Double[] arr5, Double[] arr6){
Set<Double> set1 = new HashSet<>(Arrays.asList(arr5));//转换为浮点型集合
Set<Double> set2 = new HashSet<>(Arrays.asList(arr6));
set1.addAll(set2);//两个集合元素合并,集合要求没有重复元素
Double[] arr = {};
return set1.toArray(arr);//返回时将集合转为数组
}
运行截图:
总具体代码
import java.util.Set;
import java.util.Arrays;
import java.util.HashSet;
public class Array {
public static void main(String[] args) {
//字符串逆序
String arr1="你是年少的欢喜";
String arr2="你是心中的爱恋";
System.out.println(stringReverse(arr1));
System.out.println(stringReverse(arr2));
//求整形数组的交集
int[] arr3={2,3,7,8,1};
int[] arr4={1,4,6,8,2};
intersection(arr3,arr4);
//求浮点型数组的并集
Double[] arr5= {2.1, 3.5, 1.4, 6.4, 7.3};
Double[] arr6= {1.3, 6.4, 3.2, 5.5, 1.5};
System.out.println(Arrays.toString(union(arr5, arr6)));
}
public static Double[] union(Double[] arr5, Double[] arr6){
Set<Double> set1 = new HashSet<>(Arrays.asList(arr5));//转换为浮点型集合
Set<Double> set2 = new HashSet<>(Arrays.asList(arr6));
set1.addAll(set2);//两个集合元素合并,集合要求没有重复元素
Double[] arr = {};
return set1.toArray(arr);//返回时将集合转为数组
}
public static void intersection(int[] arr3,int[] arr4){
for (int i :arr3)//遍历第一个数组
for (int j :arr4) {//遍历第二个数组
if (i==j) {//对比是否存在相同元素,存在则输出
System.out.println(i);
break;
}
}
}
public static String stringReverse(String arr){
int len=arr.length();//字符串的长度
char[] c =arr.toCharArray();//将字符串转化为字符数组
for(int i=0;i<len/2;i++){//对字符数组进行逆序
char tmp=c[i];
c[i]=c[len-i-1];
c[len-i-1]=tmp;
}
return String.valueOf(c);//将字符数组转回字符串并返回
}
}