概念1:Rehash的概念?
Rehash 是HashMap在扩容时候的一个步骤。
HashMap的容量是有限的。当经过多次元素插入,使得HashMap达到一定饱和度时,Key映射位置发生冲突的几率会逐渐提高。
这时候,HashMap需要扩展它的长度,也就是进行Resize
影响发生Resize的因素有两个:
1.Capacity(HashMap的当前长度–容量)
HashMap的当前长度。上一期曾经说过,HashMap的长度是2的幂。
2.LoadFactor(负载因子)
HashMap负载因子,默认值为0.75f。
衡量HashMap是否进行Resize的条件如下:
HashMap.Size >= Capacity * LoadFactor (默认情况下是 == 原来长度 * 0.75)
HashMap的Resize方法具体做了什么事情?
1.扩容
创建一个新的Entry空数组,长度是原数组的2倍。