
扫码关注微信公众号
回复“面试手册”,获取本站PDF版
回复“简历”,获取高质量简历模板
回复“加群”,加入程序员交流群
回复“电子书”,获取程序员类电子书
当前位置:
Java > Java集合高频面试题 > 20.HashMap的长度为什么是2的幂次方
本文链接:https://www.mianshi.online/java-collection-hashmap-2.html
因为HashMap
是通过key
的hash值来确定存储的位置,但Hash值的范围是-2147483648到2147483647,不可能建立一个这么大的数组来覆盖所有hash值。所以在计算完hash值后会对数组的长度进行取余操作,如果数组的长度是2的幂次方,(length - 1)&hash
等同于hash%length
,可以用(length - 1)&hash
这种位运算来代替%取余的操作进而提高性能。
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版