type
status
date
slug
summary
tags
category
icon
password
Property
Sep 5, 2023 01:00 PM
实际上
Go
的map
和Java7
之前的HashMap
, 非常相似。都是Array
+ LinkedTable
的结构。结构
map
数据结构由runtime/map.go/hmap
定义:bucket
数据结构由runtime/map.go/bmap
定义:这里使用的数组对齐方式来存放数据。
overflow
指向下一个bucket
.工作流程
首先通过
key
计算Hash值,通过Hash的低位,计算出该元素需要存放在buckets
中的哪一个bucket
.
如果Hash冲突,也就是当前bucket
已经有人进去了。那么就使用该bucket
的overflow
指向自己的bucket
.查找元素也是大同小异。
- 作者:sdttttt
- 链接:https://www.sdttttt.site/article/93002646-1734-4c22-a81a-ab9cffa1ca47
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。