1. 程式人生 > >Java HashMap 的 loadfactory 載入因子

Java HashMap 的 loadfactory 載入因子

 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就是負責增加桶的容量的方法。