天天看點

HashMap多個構造方法的了解

1、建立HashMap除了常用的空方法

2、還有一個入參的,這個入參并不是指建立大小為3的HashMap,而是建立大于3的最小2的n次方大小的HashMap,比如3,實際建立的長度為2^2=4。

以此類推,new HashMap(5)實際建立的大小為2^4=8。

3、兩個入參,第一個入參仍是第2點中的入參,而第二個入參則是環境因子。表示,目前建立的大小的HashMap實際可用的空間大小的比例。比如下例,建立的大小為8的HashMap,實際上并不能占用8個長度的空間,而隻能占用8*0.75=6。相當于最多隻能容納6個長度的資料。

我們要知道HashMap建立時,如果不指定長度,其實内部是會進行擴容,重新配置設定空間,配置設定空間是以目前容量的兩倍進行擴容。我們用的空方法中,預設的容量是8,如果内部資料大于8*0.75時,系統自動擴容為16,當然,預設的負載因子也是0.75,這是一個經過java開源團隊經過多次實驗後決定的相對性能更高的負載因子。