Golang - Map底层实现

底层结构

  • 使用哈希表作为底层实现
  • 一个哈希表里可以有多个哈希表节点,也叫bucket(哈希桶)
  • 每个bucket就保存了map中的一个或一组键值对

哈希冲突

  • 当有两个或以上数量的键被哈希到了同一个bucket时,就称这些键发生了冲突
  • Go使用链地址法来解决键冲突【具体操作就是插入key到map中时,当key定位的桶填满8个元素后,将会创建一个溢出桶,并且将溢出桶插入当前桶的所在链表尾部
  • 由于每个bucket可存放8个键值对,所以同一个bucket存放超过8个键值对时就会再创建一个键值对,用类似链表的方式将bucket连接起来
posted @   李若盛开  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
点击右上角即可分享
微信分享提示