LinkedHashMap源码解析(上)

LinkedHashMap维护插入的顺序。

元素存储关系

LinkedHashMap源码解析(上)

红黄箭头:元素添加顺序

蓝箭头:单链表各个元素的存储顺序

head:链表头部

tail:链表尾部

继承体系

LinkedHashMap源码解析(上)

继承自 HashMap ,因此 HashMap 拥有的荣耀它也都有.

LinkedHashMap源码解析(上)

LinkedHashMap源码解析(上)

2 属性

  • 双向链表的头(最老)
    LinkedHashMap源码解析(上)
  • 双链表的末尾(最小)
    LinkedHashMap源码解析(上)
  • HashMap.Node的子类:常规 LinkedHashMap 节点,增加了 before 和 after 属性,维护双向链表的结构

LinkedHashMap源码解析(上)

此 LinkedHashMap 的迭代排序方法:

true: 访问顺序

false(默认): 插入顺序

LinkedHashMap源码解析(上)

3 构造方法

构造方法都是先执行父类 HashMap 的构造方法.

3.1 无参

  • 构造一个空的维护插入顺序的LinkedHashMap实例,其默认初始容量(16)和负载因子(0.75).

LinkedHashMap源码解析(上)

3.2 有参

  • 构造一个空的LinkedHashMap实例,可自己指定初始容量,负载因子和排序模式.
  • LinkedHashMap源码解析(上)
  • 构造一个维护插入顺序的LinkedHashMap实例,该实例具有与指定map相同的映射关系,创建的LinkedHashMap实例具有默认的加载因子(0.75)和足以容纳指定map中映射的初始容量.
  • LinkedHashMap源码解析(上)
  • 下面我们开始研究该类的主要特性是如何通过代码实现的.
上一篇:linux内核 do_fork 函数源代码浅析


下一篇:CentOS 6.2大型企业邮件系统(一)