import java.util.LinkedHashMap;
import java.util.Map;
public LRUCache<K, V> extends LinkedHashMap<K, V> {
private int cacheSize;
public LRUCache(int cacheSize) {
super(16, 0.75, true);
this.cacheSize = cacheSize;
}
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() >= cacheSize;
}
}
知识点
1. 构造函数参数:16表示初始化hashmap的数量;0.75表示hashmap数量达到0.75比重时,扩容2倍;true表示链表顺序是访问顺序。
2. removeEldestEntry方法,回收策略的重写方法。
3. cacheSize表示缓存数量。