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;