首先,lengt为2的整数次幂的话,h&(length-1)相当于对length取模,既保证了散列均匀,又提升了效率。
其次,length为2的整数次幂,保证了length-1最后一位是1,在与操作后可能出现两种结果。反之,最有一位只有可能为0。所以,这样能是hash值发生碰撞的概率较小,也能尽可能保证散列均匀。
hashmap的初始容量为什么选择16
最新推荐文章于 2023-09-17 17:02:06 发布
首先,lengt为2的整数次幂的话,h&(length-1)相当于对length取模,既保证了散列均匀,又提升了效率。
其次,length为2的整数次幂,保证了length-1最后一位是1,在与操作后可能出现两种结果。反之,最有一位只有可能为0。所以,这样能是hash值发生碰撞的概率较小,也能尽可能保证散列均匀。