1. 程式人生 > 其它 >Java HashMap 四個建構函式

Java HashMap 四個建構函式

四個構造方法

HashMap():構造一個空的 HashMap ,預設初始容量(16)和預設負載係數(0.75)。

HashMap(int initialCapacity):構造一個空的 HashMap,具有指定的初始容量和預設負載因子(0.75)。

HashMap(int initialCapacity,float loadFactory):構造一個空的 HashMap,具有指定的初始容量和負載因子。

HashMap(Map<? extends K,? extends V> m):構建一個新的HashMap與指定的相同的對映Map。

問題1:如指定初始容量時,指定容量為A時,HashMap會怎麼處理?

(1)HashMap會先判斷A是否小於0,如果是,丟擲不合法的引數異常;
(2)然後判斷A是否大於MAXIMUM_CAPACITY(最大容量:1<<<30=2^30),如果是,則將初始容量設定為MAXIMUM_CAPACITY;
(3)最後呼叫tableSizeFor()方法對A進行處理;tableSizeFor()方法用於找到大於等於initialCapacity的最小的2的冪(initialCapacity如果就是2的冪,則返回的還是這個數)