首先說jdk1.7:
當例項化arraylist時,建立長度為10的object[ ] ;
當add新增到11個的時候,擴容,擴容為原來的1.5倍。
將原來的資料複製到新的陣列中。
建議使用new arraylist(int capacity)直接宣告陣列的大小;
然後說一下1.8的變化:
當例項化是,建立object[ ] ,初始化為 ,並沒有長度。
當新增第乙個元素時,建立長度為10的陣列。
後續一致。
1.7類似,餓漢式
1.8類似,懶漢式
1.8的優點:延遲陣列的建立,節省記憶體
vector的分析:首先1.7 和 1.8建立長度都為10
擴容方面是原來的2倍。
ArrayList底層探秘
初始容量 private static final int default capacity 10 空陣列 private static final object empty elementdata 預設容量 private static final object defaultcapacity e...
ArrayList底層分析
arraylist實現於list randomaccess介面。可以插入空資料,也支援隨機訪問。相當於動態陣列,其中最重要的兩個屬性分別是 elementdata,以及size大小。在呼叫add 方法的時候 public boolean add e e 如果是呼叫add index,e 在指定位置新...
ArrayList底層實現
modifier and type method and description boolean add e e 將指定的元素追加到此列表的末尾 void add int index,e element 在此列表中的指定位置插入指定的元素。boolean addall collection exte...