java陣列複製的效率
阿新 • • 發佈:2019-02-17
使用clone方法A、for迴圈的話,很靈活,但是程式碼不夠簡潔. B、System.arraycopy()原始碼。可以看到是native方法:native關鍵字說明其修飾的方法是一個原生態方法,方法對應的實現不是在當前檔案,而是在用其他語言(如C和C++)實現的檔案中。 可以將native方法比作Java程式同C程式的介面。
public static native void arraycopy(Object src, int srcPos, Object dest, int destPos,int length);C、選項有誤,copyOf不是System的方法,而是Arrays的方法,下面是原始碼,可以看到本質上是呼叫的arraycopy方法。
1 2 3 4 5 6 |
public
static
int []
copyOf( int []
original, int
newLength) {
int []
copy = new
int [newLength];
System.arraycopy(original, 0 ,
copy, 0 ,
Math.min(original.length,
newLength));
return
copy;
}
|
CD可以排除。那麼AB怎麼比較呢? 給出一下參考的: http://bbs.csdn.net/topics/370151185。 具體的理由不好說。不過一致的說法和實驗證明是arraycopy()效率高!!!T...T
首先:Sytem.copyOf有這個?我只知道是Arrays.copyOf 結論: 效率:System.arraycopy > clone > Arrays.copyOf > for迴圈