HashMap的数组容量为什么是2的N次幂

HashMap的数组容量为什么是2的N次幂,首先我们要清楚数组的索引值是0到N-1,而hashCode的计算范围是42亿,也就是所有对象的hashCode有42亿种可能,我们要把它丢到这16的长度的数组里面时,我们应该怎么做?怎么将42亿种可能变为0到N-1种可能,通常我们会想到用取模的方法来计算,但是它有两个缺点: 1、负数求余还是负数 2、 性能较慢(对比位运算) 我们来看看HashMap源码
相关文章
相关标签/搜索