概述:
HashMap 是我们平常项目中经常使用到的集合之一,它存储的是键值对,采用的是 数组 + 链表 + 红黑树的数据结构(详细可看我之前写的一篇关于HashMap的源码的博客),存储的数据是无序的,但是如果我们项目中需要用到有序的HashMap,那么我们可以使用LinkedHashMap,使用归使用, 但是LinkedHashMap 为什么是有序的呢? 接下来就让我们通过源码来回答这问题。
注:本文使用的是JDK 1.8,主要是解析LinkedHashMap为什么有序相关的源码
源码解析:
一、LinkedHashMap的数据结构
如图,上面的table部分是在父类HashMap中实现的,下面那部分是链表的数据结构,LinkedHashMap之所以能够有序,也是因为它比 HashMap 多了个链表来存储数据的原因。
二、LinkedHashMap 的属性、构造方法等
<