HashMap 思考
- python, golang 高级语言中map 如何实现的?
HashMap 介绍
通过Hash算法形成Bucket,常用链表方式解决冲突,插入删除时间复杂度O(1), 空间复杂度O(n)
HashMap 特点
- Bucket是通过Hash算法实现,所以会有无序现象。
- Bucket是通过Hash算法实现,具体数据存储会有KEY 判别冲突。
- 冲突增加,会退化成链表,需要进行ReBuild。
HashMap 定义
type HashMap struct {
//防止退化链表,进行Rebuild
P float
//HashMap 长度
Len uint
//桶大小
Bucket []*LinkedList
//Rebuild双写
Temp []*LinkedList
//Hash算法
HashFunc func(key string) uint
}
HashMap 实现
https://github.com/xc8801/Data-Structures/tree/master/HashMap