map数据结构初解

对于开发者而言map表层是键值对的形式,且键唯一。

底层数据结构参考源码如下:

如代码所示:Map中的key,value则以Entry的形式存放在数组中

下面以put为例:对put过程实现做一个完整的解析。

1 调用put

2 has算法决定元素应该放在table的那个位置

3

 通过table[i]获取新Entry的值, 如果值不为空,则判断key的hash值和equals来判断新的Entry和旧的Entry值是否相同, 如果相同则覆盖旧Entry的值并返回。
 往数组上添加新的Entry。
添加Entry时,当table的容量大于theshold((int)Math.min(capacity * loadFactor, MAXIMUM_CAPACITY + 1)), 则扩容!
 
 
原文地址:https://www.cnblogs.com/zslb/p/9254766.html