关注
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
相关推荐
06-27 19:00
陕西师范大学 Java 在百度日常实习了快5个月了,之前还在一个独角兽实习过几个月。这边mentor和leader对我都挺好,做的东西也变得核心起来。所以暑期就也没咋准备。但现在看好多兄弟三四段实习,有点犹豫要不要再换一家。
谁在守护这片沙滩:独角兽+百度够用了

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 你觉得现在还能进互联网吗? #
2066次浏览 67人参与
# 如何准备秋招 #
4932次浏览 76人参与
# 现代汽车前瞻技术研发急速编程挑战赛 #
18822次浏览 167人参与
# 实习,不懂就问 #
16106次浏览 227人参与
# 如果中了500万,你会离职吗? #
86405次浏览 676人参与
# 你觉得实习能学到东西吗 #
7320次浏览 164人参与
# 哪个瞬间让你对大厂祛魅了? #
379533次浏览 2777人参与
# 面试时被问的最奇葩的问题 #
21553次浏览 124人参与
# 秋招什么时候开投比较合适? #
3088次浏览 59人参与
# 软开人,秋招你打算投哪些公司呢 #
99523次浏览 934人参与
# 来聊聊你认为的薪资天花板是哪家? #
30338次浏览 174人参与
# 每个月的工资都是怎么分配的? #
7139次浏览 134人参与
# 预测一下26届秋招形势 #
11707次浏览 124人参与
# 腾讯工作体验 #
473643次浏览 3489人参与
# 打工人的精神状态 #
51818次浏览 940人参与
# 职场情商大赛 #
131201次浏览 655人参与
# 高考出分的那一天,我__ #
9843次浏览 143人参与
# 非技术2024笔面经 #
384604次浏览 4732人参与
# 一觉醒来,秋招难度下降一万倍…… #
83535次浏览 642人参与
# 京东美团大战,你怎么看? #
92526次浏览 569人参与
# 安利/避雷我的专业 #
75439次浏览 522人参与