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个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
Xx
下载 APP