Arrays 类提供了两类复制数组的方法,而且提供了很多重载形式,可以实现不同类型数组的复制,这里仅以 int 类型为例说明。
copyOf(arr, int newlength)
- 复制数组 arr 中的所有元素到新数组中
- newlength 是新数组的长度,若大于 arr 的长度则用 0 填充,若小于 arr 的长度则从第一个元素开始截取
- 返回复制后得到的新数组
copyOfRange(arr, int fromIndex, int toIndex)
- 复制数组 arr 中指定索引范围内的元素到新数组中
- 索引范围包括 fromIndex,不包括 toIndex
- 返回复制后得到的新数组
public static void main(String args[]) {
int[] arr = new int[5];
Arrays.fill(arr, 8);
System.out.println("复制整个数组后得到的新数组:");
int[] brr = Arrays.copyOf(arr, 8);
for (int m : brr) {
System.out.print(m + " ");
}
int[] crr = Arrays.copyOfRange(brr, 0, 3);
System.out.println("\n复制部分数组后得到的新数组:");
for (int m : crr) {
System.out.print(m + " ");
}
}
输出:
复制整个数组后得到的新数组:
8 8 8 8 8 0 0 0
复制部分数组后得到的新数组:
8 8 8