APIjava
public static void arraycopy( Object src, //源數組 int srcPos, //源數組的起始位置 Object dest, //目標數組 int destPos, //目標數組的起始位置 int length //複製長度 )
我用數組擴容的例子來演示這個方法的使用:segmentfault
public static void main(String[] args) { int[] arrA = new int[10]; for (int i = 0; i < 10; i++) { arrA[i] = i; } System.out.println(Arrays.toString(arrA)); int[] arrB = new int[20]; System.arraycopy(arrA, 0, arrB, 0, 10); arrA = arrB; System.out.println(Arrays.toString(arrA)); }
測試:api
代碼截圖:數組
先來看錯誤數據結構
錯誤出現的代碼部分截圖編輯器
在學習數據結構數組部分的時候,須要移動元素,編輯器,就會提示我,代碼(註釋掉的部分)能夠優化(註釋下方的代碼)。一看,比較簡潔,也彷彿看到過,就優化了,以前測試都沒問題,可是後面涉及到數組容量的問題,減容測試就出錯了,還好我以前寫的代碼我還保留着,測試沒有問題。學習
沒有報錯,這說明這部分是能夠實現的,可是爲何使用Java底層的代碼就會出錯呢,我沒有去深究。測試
[1] 在Java中System.arraycopy() 和 Arrays.copyOf()二者之間的區別優化
[2] System:System.arraycopy方法詳解.net