ArrayList底層(1 7和1 8)變化

2021-10-24 23:26:32 字數 385 閱讀 9600

首先說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...