陣列賦值

劍握在手發表於2013-11-03

第一種方式利用for迴圈:

int[] a={1,2,4,6};

int length=a.length;

int[] b=new int[length];

for (int i = 0; i < length; i++) {

b[i]=a[i];

}

第二種方式直接賦值:

int[] array1={1,2,4,6};

int[] array2=a;


這裡把array1陣列的值複製給array2,如果你這樣去執行,就會發現此時兩個陣列的值是一樣的。這是傳遞的是引用(也就是地址),之後改變其中一個陣列另一個也會跟著變化。

 

第三種方式:

利用Arrays自帶的copyof

 int copy[] = Arrays.copyOf(a, a.length);

 

第四種方式:

這裡再介紹一下System.arraycopy這個函式,從JAVA API中找了一段。大家看一下。

public static voidarraycopy(Object src, int srcPos, Object dest, int destPos, int length)從指定源陣列中複製一個陣列,複製從指定的位置開始,到目標陣列的指定位置結束。從src引用的源陣列到dest引用的目標陣列,陣列元件的一個子序列被複制下來。被複制的元件的編號等於length引數。源陣列中位置在srcPossrcPos+length-1之間的元件被分別複製到目標陣列中的destPosdestPos+length-1位置。

 

相關文章