如何复制java数组
复制 Java 数组的方法
使用 System.arraycopy()
System.arraycopy() 是 Java 提供的高效数组复制方法,适用于任意类型的数组。
语法如下:
System.arraycopy(src, srcPos, dest, destPos, length);
src:源数组srcPos:源数组起始位置dest:目标数组destPos:目标数组起始位置length:复制的元素数量
示例代码:
int[] src = {1, 2, 3, 4, 5};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 0, src.length);
使用 Arrays.copyOf()
Arrays.copyOf() 提供了一种简洁的方式复制数组,通常用于完整复制或截断/扩展数组。
语法:

dest = Arrays.copyOf(src, length);
src:源数组length:目标数组长度(可大于或小于源数组长度)
示例代码:
int[] src = {1, 2, 3};
int[] dest = Arrays.copyOf(src, src.length); // 完整复制
int[] extended = Arrays.copyOf(src, 5); // 扩展长度,多余元素填充默认值
使用 Arrays.copyOfRange()
适用于复制数组的指定范围,语法如下:

dest = Arrays.copyOfRange(src, from, to);
from:起始索引(包含)to:结束索引(不包含)
示例代码:
int[] src = {10, 20, 30, 40, 50};
int[] dest = Arrays.copyOfRange(src, 1, 4); // 结果为 {20, 30, 40}
使用 clone() 方法
Java 数组默认实现了 clone() 方法,可直接调用生成浅拷贝。
示例代码:
int[] src = {5, 6, 7};
int[] dest = src.clone();
手动遍历复制
通过循环逐个复制元素,适用于需要自定义处理的场景。
示例代码:
int[] src = {8, 9, 10};
int[] dest = new int[src.length];
for (int i = 0; i < src.length; i++) {
dest[i] = src[i];
}
注意事项
- 深拷贝与浅拷贝:对于对象数组(如
String[]或自定义类数组),上述方法均为浅拷贝。若需深拷贝,需手动复制每个对象或使用序列化。 - 性能:
System.arraycopy()是底层实现,通常性能最优。 - 空指针检查:操作前需确保源数组和目标数组非
null。






