zslb

对于开发者而言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)), 则扩容!

分类:

技术点:

相关文章:

  • 2021-10-02
  • 2021-09-06
  • 2021-09-16
  • 2021-09-07
  • 2021-07-01
  • 2021-06-21
  • 2021-12-31
  • 2021-12-08
猜你喜欢
  • 2021-08-27
  • 2022-01-27
  • 2022-12-23
  • 2022-02-06
  • 2022-02-09
  • 2021-05-19
  • 2021-05-20
相关资源
相似解决方案