JDK1.7hashMap图例
2021-01-12 14:50:49 0 举报
JDK1.7HashMap流程图例
作者其他创作
大纲/内容
put(key,value);
获取hash值
是
比较e的hash和待存入的hash是否一致,并且key是否一致
否
重新赋值threshold=capacity*loadFactor
init()
addEntry(key,value)、modCount++
false时,循环拿下一个元素对比
key = null
通过下标获取table上的元素,并判断是否为null
EMPTY_TABLE
e.value=value(替换value)
放入null值
putForNullKey
h & (length-1)(任何数&上2的幂的数都只有两种结果(2的幂和0),所以这里采用了lengh-1)
new hashMap(initialCapacity)
initialCapacity:初始化容量loadFactor:扩容因子(0.75f)
初始化
计算下标
e=e.next
table = new Entry[capacity]
capacity=roundUpToPowerOf2(initialCapacity); 找到一个大于等于初始化容量的2的幂的数
true
重新创建一个table
put
0 条评论
回复 删除
下一页