深度解各类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。

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

被折叠的 条评论
为什么被折叠?



