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