首页
编程
java
php
前端
首页
编程
java
php
前端
以除留余数法建立Hashmap,Size应当取素数还是2的n次幂?
哈希表容量取2的n次幂这条法则是不是不适用于除留余数法?
应该用取素数法,一般取小于Size的最大素数
答案是:2的n次幂
详细可参考
为什么hashmap的容量必须是2的n次幂_styhm的专栏-CSDN博客_hashmap的容量为什么是2的n次幂
要明白为什么是2的n次幂,这要从hashmap的hashCode方式说起,hashmap的容量期望就是用来均匀散列存放map中的元素。hashmap根据hash值把元素放到hashmap内部数组的一个位置上。1、为什么hashmap的容量必须是2的n次幂??我们不妨先看看hashCode的原理,以String为列,获取hashCode的方法源码 public int hashCode() { int h = hash; if (h == 0 &...
https://blog.csdn.net/styhm/article/details/109778522
点击展开全文