HashMap\LinkedHashMap\TreeMap实现原理和速率比较【超简洁版本】

本文深入探讨了HashMap、TreeMap及LinkedHashMap的内部实现原理,详细分析了这些Map类型的创建、源码解读及其运行效率对比。指出HashMap在数据插入上表现优异,LinkedHashMap则在数据查询和删除操作中更胜一筹。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

深度解各类Map的内部实现结构

1、创建实例

 

2、查看源码

HashMap

每个Map里面都有若干个Node的类对象,Node实现的就是键-值对,每当加入一个Node时,通过hash获得hash值,并且HashMap维护着一个List用来存储每个Node。

插入时,通过下图来确定索引值,同时每个node都有一个next的属性,需要注意的是HashMap可以加入TreeMap插入方式和TreeMap插入方式相同。

 

TreeMap

用二叉树实现,具有就不赘述

 

LinkedHashMap

链表加二叉树的方式进行实现,在HashMap的基础上增加了下面几个属性头部和尾部结点以及before和after结点。

 

3、运行比较

第一次数据

第二次数据

第三次数据

第四次数据

 

4、总结比较

HashMap在增加数据上性能优越,linkedhashmap在增加数据上一样不错,同时删除数据和查询上更加优秀,treemap在两种都不太好。因此,在数据增删改动较大的情况下建议使用hashmap,在查阅较多的情况下建议使用linkedhashmap。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值