public class LRU<K, V> extends LinkedHashMap<K, V> {
private int cacheSize;
public LRU(int cacheSize) {
// true, 访问顺序
// false, 插入顺序
this(cacheSize, true);
}
public LRU(int cacheSize, boolean accessOrder) {
// true, 访问顺序
// false, 插入顺序
super(16, 0.75f, accessOrder);
this.cacheSize = cacheSize;
}
/**
* 是否应该移除eldest元素
* accessOrder 则移除最早访问
* insertOrder 则移除最早插入
*
* @param eldest
* @return
*/
@Override
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > cacheSize;
}
}
基于LinkedHashMap的LRU
最新推荐文章于 2024-07-19 17:37:28 发布