1.hashmap是陣列+鍊錶,鍊錶是hash衝突的時候會使用
2.hashset是基於hashmap的 treeset是基於treemap的
3.vector和hashtable是執行緒安全的。stringbuffer也是執行緒安全的。(我有的時候會矛盾 stringbuffer和stringbuilder 。我們在多執行緒中經常使用stringbuffer,stringbuilder在單執行緒中使用,這個再總結)
這是擴容機制
涉及到初始值,載入因子,擴容倍數
舉兩個例子
初始值為10 載入因子為110*1=10當到了10,就會用到擴容倍數,10*2=20
載入因子為120*1=20當到了20,就會用到擴容倍數,20*2=40
依次類推
初始值為16 載入因子為0.75f16*0.75f=12當到了12,就會用到擴容倍數,16*2=32
載入因子為0.75f32*0.75f=24當到了24,就會用到擴容倍數,32*2=64依次類推
以上是我自己的理解,如有錯誤,請告知我,我立馬更改。
ArryList的擴容機制
arrylist集合的預設容量是 10 每次都是1.5倍 1的擴容量 如果資料量比較大 如果新增的資料量比較龐大 就要進行多次擴容 所以在建立集合的時候適當指定集合的預設容量的大小 有利於提高效率 不用進行多次的擴容 例1 比如,乙個可能有200個元素的資料動態新增到乙個以預設16個元素大小建立的a...
ArrayList的擴容機制
arraylist的底層資料結構是動態陣列 capacity相當於初始化陣列的大小 size就相當於陣列的實際長度 default initial capacity.private static final int default capacity 10 檢視原始碼可以發現,預設容量是10。但是當我...
ArrayList的擴容機制
arraylist的擴容機制 當向arraylist中新增元素的時候,arraylist的儲存容量如果滿足新元素的容量要求,則直接儲存 arraylist的儲存容量如果不滿足新元素的容量要求,arraylist會增強自身的儲存能力,以達到儲存新元素的要求。因為不同的jdk版本的擴容機制可能有差異,下...