HashMap的容量为什么是2的n次幂小记

HashMap的容量为什么是2的n次幂,和这个(n - 1) & hash的计算方法有着千丝万缕的关系,符号&是按位与的计算,这是位运算,计算机能直接运算,特别高效,&的计算方法是,只有当对应位置的数据都为1时,运算结果也为1,当HashMap的容量是2的n次幂时,(n-1)的2进制也就是1111111***111这样形式的,这样与添加元素的hash值进行位运算时,能够充分的散列,使得添加的元素均匀分布在HashMap的每个位置上,减少hash碰撞,下面举例进行说明 

HashMap的容量为什么是2的n次幂小记

由图可见,非2的n次幂的 (n - 1) & hash 算法,hash碰撞j几率变大

相关文章:

  • 2021-07-12
  • 2022-01-07
  • 2021-06-25
  • 2022-12-23
  • 2021-06-15
  • 2021-09-14
  • 2020-12-20
  • 2021-09-16
猜你喜欢
  • 2021-07-15
  • 2021-11-06
  • 2022-12-23
  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
相关资源
相似解决方案