这篇讲得比较透彻Java集合之LinkedHashMap。
本文属于源码阅读笔记。
1.LinkedHashMap简要介绍。
LinkedHashMap继承hashMap,并维护一个双向链表保持有序
2.LRU应用
package hashmap_thread; import java.util.Collections; import java.util.LinkedHashMap; import java.util.Map; /** * @author [email protected]</br> Created By: 2018-12-17 下午6:22:17 */ public class LRU_cache { final static int cacheSize = 4; static Map lru1 = new LinkedHashMap<String, String>((int) Math.ceil(cacheSize / 0.75f) + 1, 0.75f, true) { @Override protected boolean removeEldestEntry(Map.Entry<String, String> eldest) { return size() > cacheSize; } }; public void synchMap() { lru1 = Collections.synchronizedMap(lru1); } public static void main(String[] args) { lru1.put("11", "aa"); lru1.put("33", "cc"); lru1.put("00", "dd"); lru1.put("22", "hh"); lru1.put("66", "kk"); lru1.get("00"); System.out.println(lru1); } }
输出:
{33=cc, 22=hh, 66=kk, 00=dd}