Java HashMap 的 loadfactory 載入因子
阿新 • • 發佈:2019-02-18
2、hashmap 中的初始容量和載入因子之間的聯絡
/*
構造一個新的空 set,其底層 HashMap 例項具有指定的初始容量和指定的載入因子
*/
public HashSet(int initialCapacity, float loadFactor) {
map = new HashMap<>(initialCapacity, loadFactor);
}
初始容量 是雜湊表在建立時的容量。
載入因子 是雜湊表在其容量自動增加之前可以達到多滿的一種尺度。
當雜湊表中的條目數超出了載入因子與當前容量的乘積時,通過呼叫
rehash 方法將容量翻倍。
比如說向水桶中裝水,此時HashMap就是一個桶, 這個桶的容量就是載入容量,而載入因子就是你要控制向這個桶中倒的水不超過水桶容量的比例,比如載入因子是0.75 ,那麼在裝水的時候這個桶最多能裝到3/4 處,超過這個比例時,桶會自動擴容。因此,這個桶最多能裝水
= 桶的容量 * 載入因子。
如果桶的容量是40,載入因子是0.75
那麼你的桶最多能裝40*0.75 = 30的水,如果你裝了30的水還想繼續裝水,那麼就該用大一點的桶,呼叫rehash就是負責增加桶的容量的方法。