手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

HashMap的数据结构和HashMap的底层原理

时间:2024-10-13 05:43:20

1、HashMap的数据结构JDK1.8 以前HashMap的实现是 数组+链表JDK1.8 开始HashMap的实现是 数组+链表+红黑树。(如图)本文仅介绍HashMap基于jdk1.8

HashMap的数据结构和HashMap的底层原理

2、HashMap的构造

HashMap的数据结构和HashMap的底层原理

3、HashMap的put方法

HashMap的数据结构和HashMap的底层原理

4、HashMap的get方法

HashMap的数据结构和HashMap的底层原理

5、HashMap的tabletable是一个数组,元玟姑岭箫素是Node链表Node实现了Map.Entry 并由hash,key,valu髫潋啜缅e,next等属性组成的链表链表的key的hash值碰撞概率越大,链表越长,性能越差。

HashMap的数据结构和HashMap的底层原理
HashMap的数据结构和HashMap的底层原理

6、链表和数组结构的性能比较顺序表由数组实现,是一种随机存取结构,对表中任意节点存取操作时间复杂度为O(1)。而查找链表的节点,须从头指针开始沿链扫描,嫌嗳动垴平均时间复杂度为O(N).因此,若线性表的操作主要是查找,很少进行插入或删除操作,采用顺序比较合适。对于链表,对某个节点进行插入删除操作只需修改指针,无需大量移动元素,平均时间复杂度为O(1)。而顺序表在插入或删除时,需要大量移动数据元素,平均移动元素的数目为表长的一般,时间复杂度为O(N)。因此,对线性表频繁的进行插入删除操作时,应采用链表。当插入和删除主要在表头或表尾时,应采用循环链表。

HashMap的数据结构和HashMap的底层原理

7、在实际开发过程中使用数组还是使用HashMap,需要根据实际情况多多斟酌,充分利用不同数据结构的优点

© 手抄报圈