当HashMap中的元素个数超过数组大小(数组长度)*loadFactor(负载因子)时,就会进入扩容阶段。
在扩容阶段,HashMap会重新创建一个新的数组,然后将原来的元素复制到新数组中。
如果原来的元素个数小于等于负载因子乘以当前容量,那么HashMap就不会进行扩容。
Java 8
在Java 8中,HashMap的扩容机制做了一些调整。默认情况下,HashMap的初始容量是16,每次扩容是将容量扩大为两倍。
而且HashMap的容量要时刻保持2的幂次方,因为我们计算出hashcode之后,还要对它进行取模运算,所以容量必须是2的幂次方。
THE END
暂无评论内容