System.arraycopy和Arrays.copyOf的區別
阿新 • • 發佈:2021-02-01
技術標籤:java
1.System.arraycopy
int[] b = new int[] {2,3,4,5,3,6,7};
int[] c = new int[10];
System.arraycopy(b,0,c,1,5);
System.out.println("b:"+Arrays.toString(b));
System.out.println("c:"+Arrays.toString(c));
執行結果:
可以看到,System.arraycopy根據引數值,將陣列b中的值複製到了陣列c中
2.Arrays.copyOf
int[] b = new int[] {2,3,4,5,3,6,7};
int[] c = new int[10];
c = Arrays.copyOf(b,3);
out.println("b:"+Arrays.toString(b));
out.println("c:"+Arrays.toString(c));
執行結果:
Arrays.copyOf在複製後會改變陣列c
從原始碼上看,Arrays.copyOf建立一個新陣列後,使用了System.arraycopy方法進行復制,將新陣列賦值給陣列c