LinkedHashMap、LinkedHashSet、LinkedList

LinkedHashMap(继承自HashMap)

  • 特点:使用双向链表+链表+红黑树方法实现,在继承父类(HashMap)下,用head和tail两个节点来标记链表的头和尾,有一个boolen类型的accessOrder参数,用于控制迭代顺序,ture为访问顺序,false为插入顺序。
  • 构造方式:继承HashMap,且accessOrder默认为false
  • (初始容量、最大容量、默认负载因子、链表转化树的默认阈值、树转化链表的默认阈值、自动扩容机制、哈希桶的特殊转化机制均与HashMap相同,这里不再赘述)

迭代顺序:
1.访问顺序(access-order):在这种方法中,链表中的元素将按照它们最近一次被访问的时间排序。最近访问的元素排在最前面,而较早访问的元素排在后面;
2.插入顺序(insertion-order):在这种方法中,链表中的元素将按照它们被插入到哈希映射中的顺序排列。最早插入的元素排在最前面,而最近插入的元素排在后面。


LinkedHashSet(继承HashSet)

  • 特点:在继承HashSet的基础上重写的迭代方法spliterator,保证了读取和存入顺序相同,伪链表。

LinkedList

  • 特点:使用双向链表实现
  • 默认初始长度:0

LinkedHashMap、LinkedHashSet、LinkedList
https://xsinxcos.github.io/2023/12/26/JAVA源码学习:util篇(3)/
作者
xsinxcos(涿)
发布于
2023年12月26日
许可协议