public class LRUCacheWithLHM extends LinkedHashMap<Integer, Integer> {
private int capacity;
public LRUCacheWithLHM(int capacity){
// 由于无法获取父类的capacity字段,所以子类需要冗余一下
// true表示按读取顺序,false表示按插入顺序
super(capacity, 0.75f, true);
this.capacity = capacity;
}
@Override
protected boolean removeEldestEntry(Map.Entry<Integer, Integer> eldest) {
// 默认实现的super.removeEldestEntry,是直接返回false的,也就是不会删除
return size() > this.capacity;
}
}