集合LinkedHashMap原理刨解JDK1.8(9)

LinkedHashMap是HashMap的子类,内部有一个双向链表维护键值对,先添加元素的在前面,后添加的元素在后面,修改不影响顺序,保持插入顺序,按插入顺序访问,例如购物车场景。
在这里插入图片描述
五个构造方法4个是按插入顺序访问,另一个可以指定访问顺序

  public LinkedHashMap(int initialCapacity, float loadFactor) {
    }
  public LinkedHashMap(int initialCapacity) {
    }
  public LinkedHashMap() {
    }
  public LinkedHashMap(Map<? extends K, ? extends V> m) {
    }
    //指定按访问顺序,参数true是按访问顺序
  public LinkedHashMap(int initialCapacity,
                         float loadFactor,
                         boolean accessOrder) {
        super(initialCapacity, loadFactor);
        this.accessOrder = accessOrder;
    }

LinkedHashMap子类继承HashMap

public class LinkedHashMap<K,V>
    extends HashMap<K,V>
    implements Map<K,V>
{
//链表头,类型是Entry静态内部类,这个类是HashMap.Entry的子类
transient LinkedHashMap.Entry<K,V> head;
//双链表的末尾
transient LinkedHashMap.Entry<K,V> head;
//表示访问顺序还是插入顺序
final boolean accessOrder;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章