一起读源码之 — HashMap(jdk1.8)

2019-07-18
阅读 9 分钟
1.8k
1.7的hashMap我们已经看过了,其中在查找节点的时候,会去根据hash找到对应的数组,接着去遍历之后的链表结构,当hash冲突比较多的时候,链表就会非常的长,此时遍历链表的效率就会很低,所以大神们在将红黑树加入到了1.8的hashMap中,当链表长度大于8的时候,会将链表转换为红黑树,提高了查找节点的效率。如下图:

一起读源码之 — HashMap(jdk1.7)

2019-07-11
阅读 5 分钟
2.6k
从上面的代码可以看出,从oldTable中遍历Entry是正序的,也就是a->b->c的顺序,而插入到新数组的时候是采用的头插法,也就是后插入的在首部,所以遍历之后结果为c->b->a;