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");
}

java  数组的复制-LMLPHP

05-08 15:01