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的幂,则返回的还是这个数)

浙公网安备 33010602011771号