【Java】HashMap实现原理及分析
一、传统 HashMap的缺点
- JDK 1.8 以前 HashMap 的实现是 数组+链表,即使哈希函数取得再好,也很难达到元素百分百均匀分布。
- 当 HashMap 中有大量的元素都存放到同一个桶中时,这个桶下有一条长长的链表,这个时候 HashMap 就相当于一个单链表,假如单链表有 n 个元素,遍历的时间复杂度就是 O(n),完全失去了它的优势。
- 针对这种情况,JDK 1.8 中引入了红黑树(查找时间复杂度为 O(logn))来优化这个问题
二、JDK1.8中HashMap的数据结构
2.1HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的

分析HashMap的put方法

JDK1.8中的HashMap的优化:https://blog.csdn.net/lianhuazy167/article/details/66967698
Hashmap实际上是一个数组和链表的结合体(在数据结构中,一般称之为“链表散列“)

浙公网安备 33010602011771号