- 2
- 0
- 约3.17千字
- 约 6页
- 2026-05-20 发布于北京
- 举报
HashMap7会发生扩容死循环
源码角度分析:
HashMap1.716*2=32
HashMap1.816116*2=32
原来的tablekey转移新的table数组中
重新计算hashhash值不变node节点中保存计算好hash值
误区:没有重新计算hash
线程安全问题:共享同同一个全局变量
intnewCapacity=newTable.length;
##遍历当前原来数组中所有的链表
for(EntryK,Ve:table){
###判断每个下标对应存放的链表是否为空
while(null!=e){
EntryK,Vnext=e.next;
inti=indexFor(e.hash,32);
e.next=newTable[i];
newTable[i]=e;
e=next;
}
}
原来oldIndex=1
循环第一次:
E=a;next=c;
计算A的key在新的table中对应index5;
A.next=newTable[
原创力文档

文档评论(0)