Jdk8-HashMap源码
2021-11-29 17:45:58 0 举报
Jdk8-HashMap源码
作者其他创作
大纲/内容
红黑树
开始
key是否存在
remove
put
是否是TreeNode
否
node = p;
节点是否不为空
返回值
判断桶是否为空
是否找到该节点
是
扩容-resize
结束
扩容
删除
获取下一个节点
afterNodeRemoval
链表
table!=null
获取第一个
遍历链表准备插入
值是否匹配
删除该节点
根据key计算hash,以及得到桶的位置i
红黑树直接插入
getNode
节点类型是否属于TreeNode
++size > threshold
获取该节点
最后一条记录是否匹配
getTreeNode
get
覆盖value
插入
链表长度是否大于8
链表插入,如果key存在则覆盖value
转换为红黑树,插入key-value
为空则返回空;不为空返回e.value
找要删除的节点
get(Object key)
table是否为空
0 条评论
回复 删除
下一页