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