1. 程式人生 > 其它 >System.arraycopy和Arrays.copyOf的區別

System.arraycopy和Arrays.copyOf的區別

技術標籤: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