0
点赞
收藏
分享

微信扫一扫

GoLang之Map底层

文章目录

GoLang之Map底层

1.Map结构

1.1结构

var a map[string]string

image-20220304151429658

1.2时间复杂度分析

1.3设计简单哈希表

image-20220304151801147

2.hmap结构体

image-20220304162329081

3.bmap结构体

image-20220304163614296

image-20220304181057846

4.扩容规则

4.1翻倍扩容

image-20220304184033847

image-20220305102146069

image-20220305102243973

image-20220305102511280

image-20220305103112640

image-20220305103127985

4.2等量扩容

如果负载因子没有超标,但是使用的溢出桶很多,也会触发扩容,不过这一次是等量扩容。如果常规桶数目小于等于“2的15次方”,那么使用溢出桶数目超过常规桶就算是多了。如果常规桶数目大于“2的15次方”,那么使用溢出桶数目一旦超过“2的15次方”就算是多了

image-20220305103607768

image-20220305103817300

3.键值对选择桶的二种方法

image-20220304150147638

image-20220304150316584

image-20220304150355607

image-20220304150452333

4.解决哈希冲突的两种方法

4.1哈希冲突

假如现在已经选中了2号桶
image-20220304150718541

image-20220304151145892

4.2开放地址法

image-20220304152735316

image-20220304152800169

image-202203041528112104.3拉链法

image-20220304151145892

image-20220304153721284

5.负载因子

image-20220304154537714

6.渐进式扩容

image-20220304160116247

image-20220304160727204

image-20220304160741294

举报

相关推荐

0 条评论