一维数组的拷贝方式:clone() 方法实现数组拷贝
public static void main(String[] args) {
int[] arr = new int[]{1,2,3,4,5,6};
int[] arr1 = arr.clone();
System.out.println("Data change front !!");
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr1));
System.out.println("Data change after !!");
arr1[0] = 99;
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr1));
}
这段程序的输出结果是:
由结果可以看出,当对复制数组的某个元素进行改变时,并不影响被复制数组对应元素,即对于基本数据类型来说clone()方法实现数组拷贝也属于 深 拷 贝 \color{#FF0000}{深拷贝} 深拷贝。
二维数组的拷贝方式:clone() 方法实现数组拷贝
public static void main(String[] args) {
int[][] arr = new int[][]{{1,1},{2,2},{3,3},{4,4},{5,5},{6,6}};
int[][] arr1 = arr.clone();
System.out.println("Data change front !!");
System.out.println(arr[0][0]);
System.out.println(arr1[0][0]);
System.out.println("Data change after !!");
arr[0][0] = 99;
System.out.println(arr[0][0]);
System.out.println(arr1[0][0]);
}
这段程序的输出结果是:
由结果可以看出,当对复制数组的某个元素进行改变时,被复制数组对应元素也随之改变,即对于引用数据类型来说clone()方法是 浅 拷 贝 \color{#FF0000}{浅拷贝} 浅拷贝。
• 由 ChiKong_Tam 写于 2020 年 9 月 16 日