3.1 HashMap resize过程
2019-10-17 20:36:47 0 举报
hash rehash过程
作者其他创作
大纲/内容
5
7
0
1
JDK7及以前
2
null
3
循环开始e->7next->5
循环开始局部变量:e->3next->7节点状态,如下图
线程B
循环结束e->7next->5
JDK8
多线程下的扩容
最简单的示例,介绍扩容过程
循环开始e->3next->7
核心代码
线程A在以上节点状态的情况下,参考上面单线程扩容过程线程A完成扩容,形成环形链表
第一次循环完成
第2次循环完成
第3次循环完成 单线程扩容完成
newTable[i] = e; //将元素放在数组上 e = next; //访问下一个Entry链上的元素 此时newTable[i]依旧是e 因为是内存地址
线程A
循环结束e->5next->null
0 条评论
下一页