JDK7中的hashMap底层采用了数组+链表的数据结构实现数据存储,随着存储数据量的增大,Hash碰撞会越来越频繁。也就意味着链表会越来越长,查找效率不断降低。
JDK8解决了这个问题,对于hashMap采用了新的数据结构:数组+链表/红黑树(当链表长度达到某个阈值时,链表就转换成了红黑树)
JDK 1.6, JDK 1.7 HashMap 采用位桶 + 链表实现。
JDK 1.8 HashMap 采用位桶 + 链表 + 红黑树实现。(当链表长度超过阈值 “8” 时,将链表转换为红黑树)
更清楚的理解:https://blog.csdn.net/xuehuagongzi000/article/details/71449179
https://blog.csdn.net/wilson1068/article/details/88142495