HashMap深入理解
同时在进行数据迁移是本来是所有数据用hash&(newCap - 1)来进行寻找table的位置,但在扩容倍数是2的条件下可以使用hash&oldCap 来解决数据迁移,就不需要在重新计算每一个数组中元素的哈希值了。负载因子默认是3/4是因为他在计算时可以优化成容量-容量>>1,而且3/4也比较满足对时间和空间的要求。小提示:实际table数组初始化是在后续扩容的resize方法中。原因是扩容倍数是2方便进行&运算,java中位运算要比乘除快。深入思考hashCode()为什么使用31作为乘数?
原创
2023-05-25 14:06:20 ·
156 阅读 ·
0 评论