关注
HashMap中通过h&(length-1)的方法来代替取模
static int indexFor(int h, int length) { //根据hash值和数组长度算出索引值
return h & (length-1);
}
l
ength为2的整数次幂的话,h&(length-1)就相当于对length取模,这样便保证了散列的均匀,同时也提升了效率;其次,length为2的整数次幂的话,为偶数,这样length-1为奇数,奇数的最后一位是1,这样便保证了h&(length-1)的最后一位可能为0,也可能为1(这取决于h的值),即与后的结果可能为偶数,也可能为奇数,这样便可以保证散列的均匀性,而如果length为奇数的话,很明显length-1为偶数,它的最后一位是0,这样h&(length-1)的最后一位肯定为0,即只能为偶数,这样任何hash值都只会被散列到数组的偶数下标位置上,这便浪费了近一半的空间,因此,length取2的整数次幂,是为了使不同hash值发生碰撞的概率较小,这样就能使元素在哈希表中均匀地散列
查看原帖
5 7
相关推荐
10-23 10:26
山东大学 前端工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# OC/开奖 #
203476次浏览 1351人参与
# 材料转码还有必要吗? #
32261次浏览 152人参与
# 百度秋招 #
53173次浏览 390人参与
# 你面试时吹过最大的牛 #
1949次浏览 22人参与
# 科大讯飞工作体验 #
29289次浏览 71人参与
# 记录实习开销 #
164855次浏览 631人参与
# 腾讯音乐秋招 #
432263次浏览 4786人参与
# 实习学到最有价值的工作习惯 #
41598次浏览 364人参与
# 设计人的面试记录 #
167239次浏览 1545人参与
# 华为工作体验 #
243066次浏览 1297人参与
# 你知道哪些职场黑话? #
64972次浏览 453人参与
# 蚂蚁求职进展汇总 #
133609次浏览 1213人参与
# 2022毕业即失业取暖地 #
121718次浏览 710人参与
# 应届生应该先就业还是先择业 #
148327次浏览 746人参与
# 正在春招的你,也参与了去年秋招吗? #
335420次浏览 2563人参与
# 你找工作的时候用AI吗? #
160314次浏览 848人参与
# 为了秋招你都做了哪些准备? #
26034次浏览 497人参与
# CVTE求职进展汇总 #
26699次浏览 327人参与
# 华为池子有多大 #
124317次浏览 807人参与
# 实习生应该准时下班吗 #
317631次浏览 1717人参与
# 秋招你经历过哪些无语的事 #
28569次浏览 311人参与
# 上班后和你想的一样吗? #
91318次浏览 694人参与
快手成长空间 767人发布