Arrays.copyOf() 和 System.arraycopy() 比較

Arrays.copyOf() 和 System.arraycopy() 對比

1:Object[] newElements = Arrays.copyOf(elements, len + 1)

析:Arrays.copyOf()作用是,創建長度爲len+1的新數組,並將原數組的元素拷貝到新數組中。最後一個元素,原數組元素爲基本數據類型時,爲相應的默認值,否則爲null。

2.System.arraycopy(elementData, index, elementData, index + 1, size - index)

析:public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src:源數組;
srcPos:源數組要複製的起始位置(index);
dest:目的數組;
destPos:目的數組放置的起始位置(index+1);
length:複製的長度(size-index)。

arraycopy() 作用是將index及之後的元素拷貝出來,放到index+1及之後的位置(將原數據覆蓋掉)。

總結:

(1)原數組元素尚未取出,就被新來的覆蓋掉了。(取出順序與放置順序一致,不用擔心)
(2)新數組放不下(在此之前已做了擴容檢查,不必擔心。length+index <= dest.lengthw)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章