为什么哈希值的后几位正好确定桶的编号,是因为那个哈希函数算出来正好是这样?

来源:4-6 map为什么需要扩容?

慕虎7582433

2022-07-14

写回答

2回答

刘三月

2022-07-24

我理解的是,后B位的二进制表示,刚好对应桶的数量,刚好把键的hash低B位平分到各个桶。

比如桶8个,B=3,取hash二进制表示的低3位,这个低三位的值的可能性,只能有1~8,刚好对应1~8号桶。

取模的计算方式,大概也是一样,如果对8取模,就不会计算出超过8的数字,毕竟如果计算出来9,是没有9号桶的。

0
2
刘三月
回复
Moody
感谢老师的肯定
2022-07-25
共2条回复

Moody

2022-07-14

人为规定的嘛,桶号就是这么确定的
0
1
慕虎7582433
好的,谢谢
2022-07-15
共1条回复

深入Go底层原理,重写Redis中间件实战

深入Go语言原理+Go重写Redis

474 学习 · 172 问题

查看课程