简介本文介绍JDK7与JDK8的HashMap的区别。
JDK7与JDK8的HashMap区别项 | JDK7 | JDK8 |
数据结构 | 数组+链表。 复杂度:O(n) | 数组+链表+红黑树 链表节点数大于8时,链表转为红黑树,复杂度降至O(logn) |
插入位置 | 插入链表头部 | 插入链表尾部 |
hash算法 | 复杂 | 简单。 红黑树效率高,提高查询效率的地方由红黑树实现,没必要像jdk7那么复杂。 |
扩容机制 | 多线程可能导致:数据覆盖、读出为null、死循环 | 多线程可能导致:数据覆盖、读出为null。不会导致死循环(因为用了尾插) |