HashMap源码图
2021-08-28 17:11:25 0 举报
HashMap源码图
作者其他创作
大纲/内容
判断tbale该下标Node的hash值和当前hash值相等,并且key的地址和内容相等
new HashMap()设置默认的负载因子0.75
将key的hash值与table长度进行与运算,该值即为value所在的table下标
将Node转为TreeNode
是
调用afterNodeInsertion该方法在HashMap为空,是LinkedHashMap的重写方法
sizethreshold
put
e != null(这里e有值则说明key重复)
resize初始化一个容量为16的table
将value的值赋值给tbale该下标Node
调用putTreeVal,将数据插入红黑树中,给e赋值
return null
返回table
判断当前Node的下一个节点是否为null
将value、key、hash包装成Node,将入当前Node的下一个节点设置为该Node
e == null
遍历tbale该下标Node
判断tbale该下标Node的类型是否为TreeNode
否
判断table的长度是否>=64
若table该下标无Node
table该下标已有Node
putVal若是首次调用,则需要先初始化table,调用resize初始化
将value、key、hash包装成Node,放入该table对应的下标中
return oldValue
modCount++该值记录了操作次数,fail-fast策略就是基于该值
size++该值就是map的大小
判断tbale该下标Node的深度是否>=8
内部调用putVal
收藏
收藏
0 条评论
回复 删除
下一页