ArrayList學習

易曉雙發表於2018-08-07

https://github.com/crossoverJie/Java-Interview/blob/master/MD/ArrayList.md

1.arrayList 實現 List介面,有序,可重複。可以插入空資料,支援隨機訪問

2.有2個重要屬性,elementData陣列,size。

3.add操作,首先 進行擴容校驗,然後將插入的值放到尾部,size+1

4.如果插入指定位置,需要用到native方法陣列拷貝,system.arraycopy

5.arraylist 的主要消耗是 擴容,以及在指定位置 新增資料。

6.elementdata 元素 定義成 transient,即不可以序列化。

   又重寫了 readobject和writeobject。

   這樣做的目的是避免空間的浪費。因為陣列的容量實際大於 當前所存元素個數。

   所以在writeobject序列化時,只序列化實際儲存的元素。

https://www.cnblogs.com/aoguren/p/4767309.html


LinkedList

1.基於雙向連結串列實現,插入快,因為 連結串列儲存的都是物件的引用,插入和刪除 只涉及到 類似指標的移動。

2.查詢慢,使用二分查詢。


相關文章