LinkedHashMap 會按照key的插入順序排列孝扛。
LinkedHashMap繼承了HashMap列吼。所以和HashMap 的特性保持一致。他在HashMap之上多維護一個雙向鏈表苦始,在每次插入key時寞钥,會在鏈表的尾部添加當前節(jié)點。記錄key的添加順序盈简。
LinkedHashMap 還可以作為一個 LRU緩存凑耻。他提供了一個removeEldestEntry方法太示,繼承LinkedHashMap 并重寫方法如下
@Override
protected boolean removeEldestEntry(Map.Entry eldest) {
return size() > CACHE_SIZE;
}
CACHE_SIZE 是我們定義的一個熱緩存大小,當map的size 大于我們定義的CACHE_SIZE香浩,就會把之前的最早添加(讀取key不會重新排序)的key刪除类缤。