集合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;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章