java 数组的复制
java数组的复制分为数组地址的复制和值的复制
地址的复制:
int []arrA={11,22,33,44}; //创建一个数组 int [] arrB=new int[5]; System.out.println("拷贝地址(引用)之前"); System.out.println("arrA="+arrA); System.out.println("arrB="+arrB); //引用的拷贝 arrB=arrA; System.out.println("拷贝地址(引用)之后 "); System.out.println("arrA="+arrA); System.out.println("arrB="+arrB);
值的复制:
int [] arrA={11,22,33,44}; int [] arrB=new int[5]; //复制 /*arrB[0]=arrA[0]; arrB[1]=arrA[1]; arrB[2]=arrA[2]; arrB[3]=arrA[3];*/ System.out.println("赋值之前"); for(int i=0;i<arrB.length;i++){ System.out.print(arrB[i]+"\t"); } //两个数组的长度的最小值 int length=Math.min(arrA.length, arrB.length); for(int i=0;i<length;i++){ arrB[i]=arrA[i]; } //遍历arrB数组 System.out.println("\n赋值之后"); for(int i=0;i<arrB.length;i++){ System.out.print(arrB[i]+"\t"); }
System类中的 arraycopy(…)方法
int [] arrA={11,22,33,44};//源数组 int [] arrB=new int[5];//目标数组 System.out.println("数组拷贝之前"); for(int num:arrB){ System.out.print(num+"\t"); } //拷贝 System.arraycopy(arrA, 0, arrB, 1, 2); //从arrA从下标0开始拷贝,拷贝给arrB从下标1开始,拷贝的长度为2 arrB的元素为[0,11,22,0,0] System.out.println("\n数组拷贝之后"); for(int num:arrB){ System.out.print(num+"\t"); }
内容