putVal
2021-04-18 17:43:00 4 举报
AI智能生成
hashmap putval()
作者其他创作
大纲/内容
1、第一次进行put()
即判断if ((tab = table) == null || (n = tab.length) == 0,进行resize()初始化散列表。再进行下一判断(2)
寻址:(散列表长度-1)&hash
2、通过寻址运算找到的位置为空
则在该位置创建新Node结点,结构修改次数加1(modCount++),若增加后的size大于扩容阈值就进行resize()扩容
3、通过寻址运算找到的位置不为空
与第一个结点的hash,key匹配
若onlyIfAbsent为false则进行结点替换,否则不替换
链表已经树化
进行树结点的添加操作putTreeVal()
与第一个结点的hash,key不匹配,向下查找
找到匹配的结点
若onlyIfAbsent为false则进行结点替换,否则不替换
找不到匹配的结点
则在链表尾插入新的Node结点,且如果链表长度大于树化阈值,则将链表树化
若增加后的size大于扩容阈值就进行resize()扩容
0 条评论
下一页