java如何复制数组
使用 System.arraycopy() 方法
System.arraycopy() 是 Java 中高效的原生数组复制方法,适用于任意类型的数组。语法如下:
System.arraycopy(srcArray, srcPos, destArray, destPos, length);
srcArray:源数组srcPos:源数组起始位置destArray:目标数组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() 适用于快速复制整个数组或截取部分元素,自动创建目标数组。语法:

destArray = Arrays.copyOf(srcArray, newLength);
newLength:目标数组长度(可扩展或截断)
示例代码:
import java.util.Arrays;
int[] src = {1, 2, 3};
int[] dest = Arrays.copyOf(src, src.length); // 完整复制
int[] partialDest = Arrays.copyOf(src, 2); // 复制前两个元素
使用 Arrays.copyOfRange() 方法
若需复制数组的特定区间,可使用 Arrays.copyOfRange():

destArray = Arrays.copyOfRange(srcArray, fromIndex, toIndex);
fromIndex:起始索引(包含)toIndex:结束索引(不包含)
示例代码:
int[] src = {10, 20, 30, 40};
int[] dest = Arrays.copyOfRange(src, 1, 3); // 结果为 {20, 30}
手动循环复制
通过循环遍历数组元素逐个赋值,适合需要自定义处理的场景:
int[] src = {5, 6, 7};
int[] dest = new int[src.length];
for (int i = 0; i < src.length; i++) {
dest[i] = src[i];
}
使用 clone() 方法
数组对象自带的 clone() 方法可快速实现浅拷贝:
int[] src = {8, 9};
int[] dest = src.clone();
注意事项
- 多维数组复制时需逐层处理,否则会导致浅拷贝(子数组引用共享)。
- 对象数组复制仅拷贝引用,深拷贝需手动实现或使用序列化工具。






