1.System.arraycopy源码及参数含义:
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
* @param src 源数组
* @param srcPos 源数组复制的起始位置
* @param dest 目标数组
* @param destPos 目标数组粘贴起始位置
* @param length 复制长度
2.示例
示例1:
// 将数组复制到一个新数组中
int[] array = { 1, 2, 3, 4, 5 };
int[] targetArr = new int[array.length];
System.arraycopy(array, 0, targetArr, 0, array.length);
// 等同于targetArr = Arrays.copyOf(array, array.length);
System.out.println(Arrays.toString(targetArr));// 结果: [1, 2, 3, 4, 5]
示例2:
//数组之间的复制
int[] arr1 = new int[] { 1, 4, 5, 4, 5 };
int[] arr2 = new int[] { 2, 3 };
System.arraycopy(arr2, 0, arr1, 1, 2);
System.out.println(Arrays.toString(arr1));// 结果:[1, 2, 3, 4, 5]
示例3:
//当前数组元素复制
int[] arr = new int[] { 0, 1, 2, 3, 4 };
System.arraycopy(arr, 1, arr, 2, 2);
// 相当于是从下标1复制2个(1和2) , 到下标2,3
System.out.println(Arrays.toString(arr));// 结果:[0, 1, 1, 2, 4]