创建 HashMap 我们的即可开始往里面存键值对啦。我们来一步一步的看看 HashMap 是如何存储!
我们要模拟一下存储时的多种场景,后场景是在前场景不匹配的情况下的场景(如有遗漏请评论提醒):
我们先理解3个主要参数:
- hash (通过 key 计算出的 int 值)
- key (传入的 key)
- value (传入的 value)
我们模拟 hash 计算结果是每个场景下都存入的到坐标为 0 的 Node数组中。
先粗略的看一下各个场景是如何做到值的添加和覆盖,最后附上源码详细流程:
场景1:存储时 HashMap 的 Node 数组未初始化
![这里写图片描述](https://img-blog.csdn.net/20180911115217838?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xOVmlldw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
场景2:当前坐标下不存在值
![这里写图片描述](https://img-blog.csdn.net/2018091111532730?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xOVmlldw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)