问一个关于HashMap取模运算离散度的问题

来源:3-16 锁模块之当前读和快照读

爱学习的plhh

2020-11-25

老师你好,我想问一下,就是HashMap在计算桶的位置也就是tab索引位置时候,使用了hash&(n-1),这个式子在n=2^n时候表示hash%n,也就是取模运算,也就是说他模的是一个偶数,但是我看有些学科上说,模一个素数的话,离散度会比较高,这里是我理解有问题还是说,他本身考虑了计算的快捷而没有考虑hash冲突不均匀的场景呢?

写回答

2回答

翔仔

2020-11-25

同学好,我理解应该是这样性能比较高,并且符合计算机思维,毕竟这样做能够按位去做运算,也能按照固定的规则进行扩容,如果按照素数取模的话,规则制定相对麻烦些

1
4
爱学习的plhh
回复
翔仔
好的,老师,那我大概就明白了,谢谢老师
2020-11-26
共4条回复

爱学习的plhh

提问者

2020-11-25

老师,也不是我钻牛角尖,我只是想知道一下

0
0

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程