用linkedhashmap实现lru算法?
主要考察2个点
- accessorder实现lru的逻辑
- removeEldestEntry的复写
在插入之后,会调用linkedhashmap的afternodeinsertion方法,需要重写removeeldestentry方法
import java.util.LinkedHashMap;
import java.util.Map;
class Scratch<K, V> extends LinkedHashMap<K, V> {
private int capacity;
public Scratch(int capacity) {
super(16, 0.75f, true);
this.capacity = capacity;
}
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > capacity;
}
}