一、LinkedHashMap 概述
摘自JDKAPI-1.6版本部分解释:LinkedHashMap 是哈希表和链接列表实现,HashMap 也是哈希表和链接列表实现的,与HashMap 的不同之处在于 LinkedHashMap 中的链接列表是双向链表。LinkedHashMap 是有序的,该迭代顺序是将键插入到映射中的顺序(插入顺序)。LinkedHashMap 提供特殊的构造方法来创建哈希映射,该映射的迭代顺序就是最后访问其元素的顺序,从近期访问最少到近期访问最多的顺序(访问顺序),这种适合映射关系适合构建 LRU 缓存。为初始容量选择非常高的值对此类的影响比对 HashMap 要小,因为此类的迭代时间不受容量的影响。允许 null 元素,是不同步的。
二、总结 LinkedHashMap 的关键点
1、LinkedHashMap 的迭代时间不受容量影响,HashMap 受容量影响。
2、LinkedHashMap 允许 null 键、null 值,线程不同步。
3、LinkedHashMap 是基于 HashMap 实现的,与之不同之处在于前者是双向链表,后者是单向链表,同时 LinkedHashMap 提供特殊的构造方法,适合构建 LRU 缓存。
4、LinkedHashMap 是有序的,按照策略区分为插入顺序和访问顺序。