int[] arr = {2,6,8,4,5,7};
System.arraycopy(arr, 3, arr, 2, 3);
Arrays.copyOf(arr, 5);
System.out.println(arr.length);
for(int i= 0;i<arr.length;i++){
System.out.println(arr[i]);
}
结果是6 2 6 4 五 7 7
所以你可以看到这个功能无效;
答案 0 :(得分:2)
您没有分配副本的结果。此
Arrays.copyOf(arr, 5);
应该是
arr = Arrays.copyOf(arr, 5);
假设您需要来自5
的第一个arr
元素。
答案 1 :(得分:0)
你应该查看源代码
public static int[] copyOf(int[] original, int newLength) {
int[] copy = new int[newLength];
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}
代码Arrays.copyOf(arr, 5);
不会更改原始数组的长度,它将返回一个具有给定长度的新数组。