Java中合并两个数组的几种方法
在Java编程中,合并两个数组是一个常见的操作,这可以帮助我们在不同的场景下处理数据,例如从不同的数据源获取数据后需要将它们合并在一起,下面将介绍几种在Java中合并两个数组的方法。

使用数组拷贝
最简单的方法是使用Java的数组拷贝功能,这种方法适用于两个数组长度相加不超过目标数组长度的情况。
public static int[] mergeArrays(int[] array1, int[] array2) {
int[] mergedArray = new int[array1.length + array2.length];
System.arraycopy(array1, 0, mergedArray, 0, array1.length);
System.arraycopy(array2, 0, mergedArray, array1.length, array2.length);
return mergedArray;
}
使用循环
如果你不想使用System.arraycopy,也可以通过循环手动合并两个数组。
public static int[] mergeArrays(int[] array1, int[] array2) {
int[] mergedArray = new int[array1.length + array2.length];
int i = 0, j = 0, k = 0;
while (i < array1.length && j < array2.length) {
if (array1[i] < array2[j]) {
mergedArray[k++] = array1[i++];
} else {
mergedArray[k++] = array2[j++];
}
}
while (i < array1.length) {
mergedArray[k++] = array1[i++];
}
while (j < array2.length) {
mergedArray[k++] = array2[j++];
}
return mergedArray;
}
使用ArrayList
如果你不想直接创建一个足够大的数组来存储合并后的结果,可以使用ArrayList来动态地添加元素。

import java.util.ArrayList;
import java.util.List;
public static int[] mergeArrays(int[] array1, int[] array2) {
List<Integer> list = new ArrayList<>();
for (int i : array1) {
list.add(i);
}
for (int i : array2) {
list.add(i);
}
return list.stream().mapToInt(i -> i).toArray();
}
使用Arrays.copyOf
Arrays.copyOf方法可以复制一个数组到一个新的数组中,并且可以指定新数组的长度。
public static int[] mergeArrays(int[] array1, int[] array2) {
return Arrays.copyOf(array1, array1.length + array2.length);
}
使用流操作
Java 8及以上版本引入了流操作,这使得合并数组变得更加简洁。
import java.util.Arrays;
public static int[] mergeArrays(int[] array1, int[] array2) {
return Stream.concat(Arrays.stream(array1), Arrays.stream(array2)).toArray();
}
介绍了五种在Java中合并两个数组的方法,每种方法都有其适用的场景,你可以根据实际情况选择最合适的方法,在实际开发中,选择合适的方法可以提高代码的可读性和可维护性。


















