Java核心技术--数组拷贝

来源:互联网 发布:淘宝店铺无流量 编辑:程序博客网 时间:2024/06/05 06:43

在Java中,允许将一个数组变量拷贝给另一个数组变量。但是要注意,拷贝的是数组的引用,而不是直接把数据拷贝,也就是拷贝之后,两个变量将会引用同一个数组。

int[] array1 = array2;array1[3] = 15;
通过上面语句赋值之后,array2[5]的值也是15.

下面是数组拷贝的示例图:


另一种情况就是,如果想要把一个数组的所有值拷贝到另一个新的数组中,就要使用Arrays类的copyOf方法完成。

int[] array1 = Arrays.copyOf(array2, array2.length);
方法copyOf的第二个参数array2.length是新数组的长度,这个方法通常用来增加数组的大小:

array = Arrays.copyOf(array, array.length);
如果数组元素是数值型,那么多余的元素会被赋值为0,;如果是boolean类型,赋值为false;相反的,如果数组的长度小于原始数组的长度,只拷贝最前面的数组元素。

注意:Java数组和C++数组在堆栈上有很大的不同,基本和分配在堆上的数组指针一样,例如:

int[] a = new int[100];//java
不同于

int a[100];//c++
等同于

int* a = new int[100];
Java中的[]被预定义为检查数组边界,并且没有指针运算,所以不能通过a加1等到数组的下一个元素。




原创粉丝点击