​

简介

        本文介绍JDK7与JDK8的HashMap的区别。

JDK7与JDK8的HashMap区别

JDK7

JDK8

数据结构


数组+链表。

复杂度:O(n)



数组+链表+红黑树

链表节点数大于8时,链表转为红黑树,复杂度降至O(logn)


插入位置

插入链表头部

插入链表尾部

hash算法

复杂


简单。

红黑树效率高,提高查询效率的地方由红黑树实现,没必要像jdk7那么复杂。


扩容机制

多线程可能导致:数据覆盖、读出为null、死循环

多线程可能导致:数据覆盖、读出为null。不会导致死循环(因为用了尾插)