集合容器的初始大小和擴容機制

2021-10-24 08:18:18 字數 464 閱讀 1807

arraylist

初始大小:10;

擴容機制:當發現容量不足時擴容,容量為原來的1.5倍+1。

linkedlist

初始大小:0;

擴容機制:無。

vector

初始大小:10;

擴容機制:當發現容量不足時,擴容到原來的兩倍。

hashset

初始大小:16;

擴容機制:載入因子為0.75,當超過這個閾值時擴容,擴容到原來的兩倍。它的子煉表達到8時 ,轉化成紅黑樹。小於6個時轉化成鍊錶。

hashmap

初始大小:16;

擴容機制:載入因子為0.75,當超過這個閾值時擴容,擴容到原來的兩倍。它的子煉表達到8時 ,轉化成紅黑樹。小於6個時轉化成鍊錶。

hashtable

初始大小:11;

擴容機制:載入因子為0.75,當超過這個閾值時擴容,擴容為2*原陣列長度+1。

常見集合的擴容機制

資料型別 底層資料結構 預設初始容量 載入因子 擴容增量 arraylist陣列 101 當元素個數超過容量長度的1倍時進行擴容 0.5 擴容後容量為原容量的1.5倍 vector陣列 101 當元素個數超過容量長度的1倍時進行擴容 1 擴容後容量為原容量的2倍 hashsethashmap 160...

HashMap的初始容量機制及擴容機制

通常在我們的應用中,hashmap是用到最多的資料結構之一,在jdk1.8之前,它的底層結構是陣列 鍊錶,而在jdk1.8之後,為了查詢效率的優化 主要是當雜湊碰撞較多的時候 它的底層結構變成了陣列 鍊錶 紅黑樹。今天就來 一下hashmap的擴容機制,這也是面試時被問到最多的問題。首先看一下原始碼...

常用集合的預設初始容量和擴容的原因

常用集合的預設初始容量和擴容的原因 當底層實現涉及到擴容時,容器或重新分配一段更大的連續記憶體 如果是離散分配則不需要重新分配,離散分配都是插入新元素時動態分配記憶體 要將容器原來的資料全部複製到新的記憶體上,這無疑使效率大大降低。載入因子的係數小於等於1,意指 即當 元素個數 超過 容量長度 載入...