HashMap:为什么容量总是为2的n次幂
Posted ccccccccccccccccccccccccccccc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HashMap:为什么容量总是为2的n次幂相关的知识,希望对你有一定的参考价值。
HashMap:为什么容量总是为2的n次幂
1)、HashMap是根据key的hash值决定key放到哪个桶中,通过tab[i = (n - 1) & hash]公式计算得出
这里的n是HashMap的容量,因为n永远是2的次幂,所以n - 1通过二进制表示,永远都是末尾连续1的形式表示(如00001111、00000011),当(n - 1) 和hash做与运算时,会保留hash中后x位的1
例如00001111 & 10000011 = 00000011
这样做的好处在于:
&运算速度快,至少比%取模运算快
能保证索引值肯定在HashMap的容量大小范围内
(n - 1) & hash的值是均匀分布的,可以减少hash冲突
————————————————
版权声明:本文为CSDN博主「邋遢的流浪剑客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40378034/article/details/88220732
以上是关于HashMap:为什么容量总是为2的n次幂的主要内容,如果未能解决你的问题,请参考以下文章