HashMap扩容机制rehashing 1.8 和 1.7 效率有区别吗?
比如说拿数组大小为16(10000)举例。
Jdk1.7:
一个元素计算出哈希值为25(011001),对应的数组位置为25 & (16 - 1) = 9(1001),扩容后位置改为25 & (32 - 1) = 25(011001)。
Jdk1.8:
一个元素计算出哈希值为25(011001),对应的数组位置为25 & (16 - 1) = 9(1001),扩容后先判断 25 & 16 是否有为0,如果不为0就在原数组位置加16移到新位置9 + 16 = 25 的位置,否则位置不变。
为什么会说 Jdk1.8 的效率会更好?(纯属个人疑惑,如有不对请指出)
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
