HashMap的初始容量为什么设置为16

论坛 期权论坛 脚本     
匿名技术用户   2021-1-2 03:22   36   0
  1. length为2的整数次幂的话,h&(length-1)等价于 h%length-1 就相当于对length取模,这样便于保证散列的均匀,同时也提升了效率。

  2. length为2的整数次幂的话,为偶数,length-1为奇数,保证了h&(length-1)二进制保证了最后一位可能是0,也可能是1。如果是奇数,那么h&(length-1)的最后一位只能为0,浪费了一般的空间。

  3. 因此取整数次幂是为了使不同的hash值发生碰撞的概率减小。

转载于:https://my.oschina.net/u/3938912/blog/3085091

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP