创建 HashMap 我们的即可开始往里面存键值对啦。我们来一步一步的看看 HashMap 是如何存储!
我们要模拟一下存储时的多种场景,后场景是在前场景不匹配的情况下的场景(如有遗漏请评论提醒):
我们先理解3个主要参数:
- hash (通过 key 计算出的 int 值)
- key (传入的 key)
- value (传入的 value)
我们模拟 hash 计算结果是每个场景下都存入的到坐标为 0 的 Node数组中。
先粗略的看一下各个场景是如何做到值的添加和覆盖,最后附上源码详细流程:
场景1:存储时 HashMap 的 Node 数组未初始化

场景2:当前坐标下不存在值

场景3:当前坐标下只有一个值并且存储的 key 相等


本文详细剖析了HashMap的put()方法在不同场景下的操作,包括数组未初始化、键值对不存在、键相等、键不相等、多个键值对存在但键相同或不同,以及链表转红黑树的情况。每个场景都涵盖了存储和覆盖的逻辑,并提到了当容量超过特定阈值时的扩容操作。
最低0.47元/天 解锁文章
600

被折叠的 条评论
为什么被折叠?



