java 两个数组合并

时间:2023-03-10 05:50:44
java 两个数组合并
需求:两个字符串合并(如果想去重复,参考下一篇--数组去重复及记录重复个数)
//方法一 Arrays类
String[] a = {"A","B","C"};
String[] b = {"D","E"};
// List<String> list = Arrays.asList(a); --OK
// List<String> list = Arrays.asList("A","B","C"); --OK
// list.add("F"); --UnsupportedOperationException
// list.remove("A"); --UnsupportedOperationException
// list.set(1,"javaee");--OK (因为是把数组转为集合,其本质还是数组,数组长度固定不变,但内容可以改变)
// 结论:虽然可以把数组转为集合,但是集合长度不能改变
List list = new ArrayList(Arrays.asList(a));
list.addAll(Arrays.asList(b));

String[] str = new String[list.size()];
list.toArray(str);
for(int x=0;x<str.length;x++){
System.out.print(str[x] + " ");
}
//方法二 循环遍历
// 两个数组合并
String[] str1 = {"Hello","world","java"};
String[] str2 = {"Veriable","syntax","interator"};
String[] newStr = new String[str1.length+str2.length];
//newStr = str1;数组是引用类型
for(int x=0;x<str1.length;x++){
newStr[x] = str1[x];
}
for(int y=0;y<str2.length;y++){
newStr[str1.length+y]=str2[y];
}
for(int y=0;y<newStr.length;y++){
System.out.println(newStr[y] + " ");
}
// 方法三
String[] str1 = {"Hello","world","java"};
String[] str2 = {"Veriable","syntax","interator"};
int str1Length = str1.length;
int str2length = str2.length; str1 = Arrays.copyOf(str1, str1Length+str2length);//数组扩容
System.arraycopy(str2, 0, str1, str1Length, str2length);
System.out.println(Arrays.toString(str1));

//