HashMap 在 JDK1.8 之前的实现方式是 数组+链表,但是在 JDK1.8 后对 HashMap 进行了底层优化,改为了由 数组+链表+红黑树 实现,主要的目的是提高查找效率。
在 数组+链表+红黑树 实现中,当链表中的元素超过了 8 个以后,会将链表转换为红黑树,当红黑树节点小于等于 6 时又会退化为链表。