java中数组的合并
以例题为例,进行讲解
给两个数组
数组A:“1,7,9,11,13,15,17,19”
数组B:“2,4,6,8,10”
将两个数组合并成数组C
public class Test{
public static void main(String[] args) {
//定义两个数组
int[] arr1 = {1,7,9,11,13,15,17,19};
int[] arr2 = {2,4,6,8,10};
//调用方法把两个数组合并成一个数组
int[] arr = generNewArr(arr1,arr2);
printArr(arr);
}
public static int[] generNewArr(int[] arr1,int[] arr2) {
//定义一个新的数组,长度是两个数组长度之和
int[] arr = new int[arr1.length + arr2.length];
//先把第一个数组的内容给新数组
for(int i = 0; i < arr1.length; i++) {
arr[i] = arr1[i];
}
for(int i = 0; i < arr2.length; i++) {
arr[arr1.length + i] = arr2[i];
}
return arr;
}
//遍历数组
public static void printArr(int[] arr){
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + "\t");
}
}
}
我们可以发现,以上代码可以正常运行,结果如下:
但是,仅仅只是排序那是不够的,有没有什么办法可以让其可以有序输出呢?方法肯定是有的,以下介绍一种冒泡排序。希望对大家有用。
public class Test{
public static void main(String[] args) {
//定义两个数组
int[] arr1 = {1,7,9,11,13,15,17,19};
int[] arr2 = {2,4,6,8,10};
//调用方法把两个数组合并成一个数组
int[] arr = generNewArr(arr1,arr2);
//排序
sortArr(arr);
//排序后打印数组
System.out.println();
printArr(arr);
}
public static int[] generNewArr(int[] arr1,int[] arr2) {
//定义一个新的数组,长度是两个数组长度之和
int[] arr = new int[arr1.length + arr2.length];
//先把第一个数组的内容给新数组
for(int i = 0; i < arr1.length; i++) {
arr[i] = arr1[i];
}
//把第二个数组的内容赋值给新数组
for(int i = 0; i < arr2.length; i++) {
arr[arr1.length + i] = arr2[i];
}
return arr;
}
//遍历数组
public static void printArr(int[] arr){
for(int i = 0; i < arr.length; i++){
System.out.print(arr[i] + "\t");
}
}
//给数组做排序
public static void sortArr(int[] arr) {
//冒泡排序,需要注意排序细节
for(int i = 0; i < arr.length ; i++) {
for(int j = 0; j < arr.length - 1 - i ; j++) {
if(arr[j + 1] < arr[j]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr [j + 1] = temp;
}
}
}
}
}
排序方法有很多,本题以冒泡法为例进行讲解,大家可以重新写一个方法进行编译。