一、clone在数组基本数据类型中的使用 public class Main { public static void main ( String [] args ) { int [] arr = { 7 , 8 , 9 }; int [] cloneArr = ( int []) arr . clone (); arr [ 2 ] = 777 ; cloneArr [ 2 ] = 888 ; System . ou
一、clone在数组基本数据类型中的使用
public class Main {public static void main(String[] args) {
int[] arr= {7,8,9};
int[] cloneArr=(int[])arr.clone();
arr[2]=777;
cloneArr[2]=888;
System.out.println(arr[2]);
System.out.println(cloneArr[2]);
}
}
运行结过显而易见
777
888
第一步先创建一个一维数组,然后调用clone()方法,将数组复制一份
所以改变arr[2]的数据,然后再改变cloneArr[2]的数据,两者有所不同。
二、clone在数组非基本数据类型中的使用
package main;import main.forClone.*;
public class Main {
public static void main(String[] args) {
TestClone[] arr=new TestClone[2]; //创建一个TestClone的一维数组
arr[1]=new TestClone(); //创建实例
TestClone[] cloneArr=(TestClone[])arr.clone(); //克隆出一个新的一维数组
arr[1].value=777; //赋值
cloneArr[1].value=999; //赋值
System.out.println(arr[1].value);
System.out.println(cloneArr[1].value);
}
}package main.forClone;
public class TestClone {
public int value=8;
}
结果如下
999
999
为什么呢,原因如下
理解数组的clone方法的关键还是理解数组的结构,以及基本数据类型、引用、对象的不同。