应该是为了减少散列碰撞和避免空间浪费吧,java的散列函数是通过hashcode和length-1计算的,他的容量必须是2的n次方。如果一开始是14二进制1110,最后一位为0,导致散列函数计算后0001,0101等永远不会出现,位置不能存放元素,空间浪费,增加了散列碰撞。散列函数的设计就是围绕减少散列碰撞和使元素分布均匀(整个数组都能存放)而设计的。
点赞 1

相关推荐

孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
牛客网
牛客企业服务