java中如何合并数组
合并数组的方法
在Java中,合并数组可以通过多种方式实现,以下是几种常见的方法:
使用System.arraycopy方法
System.arraycopy是Java提供的高效数组拷贝方法,可以将一个数组的内容复制到另一个数组中。

int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
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);
使用Arrays.copyOf和System.arraycopy
结合Arrays.copyOf和System.arraycopy可以更灵活地合并数组。
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] mergedArray = Arrays.copyOf(array1, array1.length + array2.length);
System.arraycopy(array2, 0, mergedArray, array1.length, array2.length);
使用Stream API(Java 8及以上)
通过Stream API可以简洁地合并数组,适合现代Java开发。

int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] mergedArray = IntStream.concat(Arrays.stream(array1), Arrays.stream(array2)).toArray();
手动遍历合并
对于小型数组或需要特殊处理的场景,可以手动遍历数组合并。
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] mergedArray = new int[array1.length + array2.length];
for (int i = 0; i < array1.length; i++) {
mergedArray[i] = array1[i];
}
for (int i = 0; i < array2.length; i++) {
mergedArray[array1.length + i] = array2[i];
}
使用Apache Commons Lang库
如果项目中使用了Apache Commons Lang库,可以使用ArrayUtils.addAll方法。
import org.apache.commons.lang3.ArrayUtils;
int[] array1 = {1, 2, 3};
int[] array2 = {4, 5, 6};
int[] mergedArray = ArrayUtils.addAll(array1, array2);
选择方法的建议
- 对于性能敏感的场景,优先使用
System.arraycopy或Arrays.copyOf。 - 需要代码简洁时,Stream API是不错的选择。
- 如果项目中已引入Apache Commons Lang库,
ArrayUtils.addAll是最便捷的方式。
以上方法均适用于基本类型数组和对象数组,使用时需根据实际需求选择合适的方式。






