欢迎访问宙启技术站
智能推送

Java 中的数组复制函数 clone() 的介绍及应用

发布时间:2023-10-25 05:39:23

在Java中,数组复制函数clone()是一个用于复制数组的方法。它创建并返回一个与原始数组相同类型和长度的新数组,并将原始数组的所有元素复制到新数组中。clone()方法的语法如下:

public Object clone()

clone()方法是Object类的方法,因此它可以在任何Java对象上调用。然而,在使用数组的情况下,clone()方法可以被应用在以下几个方面:

1. 数组的浅拷贝:使用clone()方法可以实现对数组的浅拷贝,即创建一个新的数组对象,但其中的元素引用与原始数组相同。这意味着修改其中一个数组的元素,会同时修改另一个数组的对应元素。例如:

int[] originalArray = {1, 2, 3, 4, 5};
int[] clonedArray = originalArray.clone();
clonedArray[0] = 10;
System.out.println(originalArray[0]); // 输出1
System.out.println(clonedArray[0]); // 输出10

2. 数组的深拷贝:如果想要创建一个完全独立的数组副本,其中的元素不会相互影响,可以使用clone()方法结合循环实现数组的深拷贝。例如:

int[] originalArray = {1, 2, 3, 4, 5};
int[] clonedArray = new int[originalArray.length];
for (int i = 0; i < originalArray.length; i++) {
    clonedArray[i] = originalArray[i];
}
clonedArray[0] = 10;
System.out.println(originalArray[0]); // 输出1
System.out.println(clonedArray[0]); // 输出10

3. 创建二维数组的副本:二维数组是由一维数组组成的数组,使用clone()方法可以实现对二维数组的副本创建。需要注意的是,clone()方法只能复制 维的引用,而不是每个元素的引用。例如:

int[][] originalArray = {{1, 2}, {3, 4}};
int[][] clonedArray = originalArray.clone();
clonedArray[0][0] = 10;
System.out.println(originalArray[0][0]); // 输出10
System.out.println(clonedArray[0][0]); // 输出10

需要注意的是,clone()方法只能复制数组对象本身的引用,而不能复制数组中的元素对象的引用。这意味着如果数组中的元素是引用类型,使用clone()方法只会复制元素的引用,而不会创建新的元素对象。为了实现复制元素对象的引用,需要使用深拷贝的方式。