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

LinkedHashMap是HashMap的子类,内部有一个双向链表维护键值对,先添加元素的在前面,后添加的元素在后面,修改不影响顺序,保持插入顺序,按插入顺序访问,例如购物车场景。
集合LinkedHashMap原理刨解JDK1.8(9)_第1张图片
五个构造方法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;

你可能感兴趣的:(Java提高篇)