采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师你好,我想问一下,就是HashMap在计算桶的位置也就是tab索引位置时候,使用了hash&(n-1),这个式子在n=2^n时候表示hash%n,也就是取模运算,也就是说他模的是一个偶数,但是我看有些学科上说,模一个素数的话,离散度会比较高,这里是我理解有问题还是说,他本身考虑了计算的快捷而没有考虑hash冲突不均匀的场景呢?
同学好,我理解应该是这样性能比较高,并且符合计算机思维,毕竟这样做能够按位去做运算,也能按照固定的规则进行扩容,如果按照素数取模的话,规则制定相对麻烦些
好的,老师
老师,你有没有发现hashtable是对素数取模,他先把一个hashcode转成了正数,然后%length,这个的初衷又是啥啊?,难道这就是常说的舍取问题嘛?
我理解是的,因为hashtable这样做确实分布更均匀,但是hashmap这样做主要是为了后续操作上的方便和快捷
老师,也不是我钻牛角尖,我只是想知道一下
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
1.7k 27
2.7k 22
1.2k 15
1.4k 14
1.3k 14