LinkedHashMap 構造方法摘要 構造一個帶預設初始容量 (16) 和載入因數 (0.75) 的空插入順序 實例。 構造一個帶指定初始容量和預設載入因數 (0.75) 的空插入順序 實例。 構造一個帶指定初始容量和載入因數的空插入順序 ·LinkedHashMap· 實例。 構造一個帶指定初 ...
LinkedHashMap
構造方法摘要
inkedHashMap()
構造一個帶預設初始容量 (16) 和載入因數 (0.75) 的空插入順序
LinkedHashMap
實例。
LinkedHashMap(int initialCapacity)
構造一個帶指定初始容量和預設載入因數 (0.75) 的空插入順序
LinkedHashMap
實例。
LinkedHashMap(int initialCapacity, float loadFactor)
構造一個帶指定初始容量和載入因數的空插入順序 ·LinkedHashMap· 實例。
LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)
構造一個帶指定初始容量、載入因數和排序模式的空
LinkedHashMap
實例。accessOreder
:false
(預設)為插入順序,true
為訪問順序。
LinkedHashMap(Map<? extends K,? extends V> m)
構造一個映射關係與指定映射相同的插入順序
LinkedHashMap
實例。
tips
如果調用LinkedHashMap(initialCapacity, loadFactor,
true
)
,每次用get或put時,受影響的條目將從當前位置刪除,並放到鏈表的尾部(散列表中的桶不會受影響,一個條目總位於其散列碼對應的桶中)。
public class LinkedHashMapT {
public static void main(String[] args) {
LinkedHashMap<String, String> lhMap = new LinkedHashMap<>(16, 0.75F, true);
lhMap.put("111", "111");
lhMap.put("222", "222");
lhMap.put("333", "333");
lhMap.put("444", "444");
lhMap.put("555", "555");
lhMap.put("666", "666");
loopLinkedHashMap(lhMap);
loopLinkedHashMap(lhMap);
loopLinkedHashMap(lhMap);
lhMap.get("333");
loopLinkedHashMap(lhMap);
lhMap.put("222", "222");
loopLinkedHashMap(lhMap);
lhMap.put("777", "777");
loopLinkedHashMap(lhMap);
}
public static void loopLinkedHashMap(LinkedHashMap<String, String> linkedhashMap){
Set<Map.Entry<String,String>> set = linkedhashMap.entrySet();
Iterator<Map.Entry<String, String>> it = set.iterator();
while(it.hasNext()){
System.out.print(it.next() + "\t");
}
System.out.println();
}
}
111=111 222=222 333=333 444=444 555=555 666=666
111=111 222=222 333=333 444=444 555=555 666=666
111=111 222=222 333=333 444=444 555=555 666=666
111=111 222=222 444=444 555=555 666=666 333=333
111=111 444=444 555=555 666=666 333=333 222=222
111=111 444=444 555=555 666=666 333=333 222=222 777=777
LRUCache
- 構造
LinkedHashMap
的子類 覆蓋方法:
protected boolean removeEldestEntry(java.util.Map.Entry<K,V> eldest)
public class LRUCache extends LinkedHashMap { private static final long serialVersionUID = 1L; protected int maxElements; public LRUCache(int maxSize) { super(maxSize, 0.75F, true); maxElements = maxSize; } protected boolean removeEldestEntry(java.util.Map.Entry eldest) { return size() > maxElements; } }