jdk1.8 HashMap 的put方法执行流程
2019-12-07 17:24:35 15 举报
jdk1.8 版本 HashMap put方法执行流程
作者其他创作
大纲/内容
如果目标位置的头结点的 key 与写入的 key 相同
如果当前节点的下一个节点为null
按照红黑树的方式写入元素
进行初始化
否
如果目标位置是一棵红黑树
是
将链表转成红黑树
如果目标位置存放的是一个链表
是否要覆盖
判断HashMap 是否未初始化
开始
遍历链表开始
结束
如果目标位置为空
这里省略扩容操作
当前节点指向node
遍历链表结束
(这里的相同指的是 key相等,key的hashcode相等)
new 一个 Node,作为头结点,放在目标位置
如果目标位置的 key与写入的 key 相同(key相同,key的hashcode相同)
覆盖
判断当前链表长度是否大于阀值
根据 key 计算出元素应该存放在数组的哪个位置(目标位置)
0 条评论
下一页