解析HashMap源码
调用key所在类的hasCode的hash值且通过一定运算(位运算,异或运算,与运算)找到数组上的一个位置,
若当前位置为空,则添加成功
若非空,则与当前位置的key的hash值比较(一定运算后的),
若不同,则添加成功
若相同,则的调用key的equals(当前位置的key)方法,
若值为true,则替换当前位置key的value值,
若值为false,则添加成功
若一链表的节点达到8个,且总节点达到64,则转为红黑树
HashMap底层结构是 由 数组+链表+红黑树 组成
不会整csdn的样式,懒得写,就直接跳转我下面 博客园的文章吧。
博客园的文章有对每一段代码的解析和涉及一些运算知识的补充
---------- ➳ ➻➴➳➴➶➷ 点击下面蓝色字
➔➔➔ 解析HashMap源码**