直接上例子,system.arraycopy()实现数组拷贝
public static int[] Solution() {
int[] digits = new int[]{1, 2, 3, 4, 5, 6, 7};
int[] result = new int[digits.length + 1];
result[0] = 0;
System.arraycopy(digits, 0, result, 1, digits.length);
return result;
}
---运行结果-------
[1, 1, 2, 3, 4, 5, 6, 7]
参数解释
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
src表示源数组,srcPos表示源数组复制起始位置(包括),dest表示目的数组,destPos表示从目的数组该位置开始往后复制(包括),length表示需要复制的长度。
补充:
1、浅拷贝:对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝。
2、深拷贝:对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝。
所以,system.arraycopy()实现的是浅拷贝