HashMap扩容流程图解
2023-06-08 18:50:37 0 举报
HashMap扩容流程图解
作者其他创作
大纲/内容
遍历红黑树
Start
N
Y
(e.hash & oldCap) == 0
return newTab
计算出数组对应的容量,扩容阈值,初始化数组
是否为树节点
遍历下一个节点或者数据迁移结束,return newTab
是否需要扩容
遍历链表
高位链表
变为链表
链表长度是否≤6
return oldTab
容量是否达到上限
变为红黑树
直接迁移到新数组index的位置
(e.hash & bit) == 0
高位链表插入位置为index + 旧数组容量,低位链表插入位置为index
低位链表
resize
满足扩容条件,数组容量和扩容阈值都扩大一倍
数据迁移,遍历数组
数组没办法再增加容量了,只能继续往链表或者红黑树上添加新的节点
只有一个节点
index下有数据
收藏
收藏
0 条评论
回复 删除
下一页