【什么是开关容量】HashMap的初始容量为什么应该是2次的n次和扩张为什么是2倍的形式

作者:安尼      发布时间:2021-04-26      浏览量:0
2.jdk1.7扩张是重新计算hashj

2.jdk1.7扩张是重新计算hashjdk1.8是原hash值新增的bit是1还是0,如果是0索引没有变化的话,1索引是“原索引oldCap”。这是jdk1.8的亮点,设计确实很巧妙,节省了重新计算hash值的时间,将以前冲突的节点均匀分散到新组的bucket上。

jdk1.7在rehash时,旧链表转移到新链表时,如果新表的数组索引位置相同,链表的要素会倒置,但jdk1.8不会倒置。