我命由我,不由天!


  • 搜索
prometheus docker golang linux kubernetes

Map 之Hash碰撞

发表于 2021-01-23 | 分类于 golang | 0 | 阅读次数 405

HashMap 之Hash碰撞

Hash碰撞的意思是Hash值相同。golang 的Map数据类型是使用链表法来处理Hash碰撞

链表法:

  1. 系统总是将新添加的 Entry 对象放入 table 数组的 bucket Index 索引处
  2. 当新对象的key计算出hash值后,插入数组的指定位置中。如果两个 Entry的 key的 hashCode()返回值相同,那它们的存储位置相同。
    1. 如果这两个 Entry的 key通过equals比较返回 true,新添加 Entry的 value将覆盖集合中原有 Entry的 value,但key不会覆盖。
    2. 如果这两个 Entry的 key通过equals比较返回 false,新添加的 Entry将与集合中原有 Entry形成 Entry链,而且新添加的 Entry位于 Entry链的头部。
  • 本文作者: Dante
  • 本文链接: https://gaodongfei.com/archives/map-hash-collision
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# golang
kustomize
面试题
  • 文章目录
  • 站点概览
Dante

Dante

119 日志
5 分类
5 标签
RSS
Creative Commons
0%
© 2023 Dante
由 Halo 强力驱动
|
主题 - NexT.Pisces v5.1.4
沪ICP备2020033702号