Java数组拷贝
在Java中,允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将引用同一个数组。
例如:
int[] a = { 1, 2, 3, 4, 5};
int[] b = a;
for (int element: b)
System.out.print(element + " ");
则输出:
1 2 3 4 5
然后改变数组 b 的某个值,在输出a和b:
b[0] = 9;
for (int element: b)
System.out.print(element + " ");
for (int element: a)
System.out.print(element + " ");
结果为:
9 2 3 4 5 9 2 3 4 5
发现:经过“数组拷贝”后,更改任意数组的值,另一个被拷贝的数组也会随之改变。
如果想将一个数组的所有值拷贝到一个新的数组中去,就要用Arrays类的copyOf方法:
int[] c = Arrays.copyOf(a, a.length);
第一个参数是新数组的名称,第二个参数是新数组的长度。这个方法常被用来增加数组的大小。如果数组元素为数值型,那么多余元素则默认被赋值为0;如果数值元素是布尔值,则将默认赋值为false;相反,如果长度小于原始长度,则只能拷贝前面的数据元素。