LRUCacheDemo
public class LRUCacheDemo extends LinkedHashMap {
private int capacity; // 缓存个数
public LRUCacheDemo(int capacity) {
// true false 不一致
super(capacity, 0.75F, false);
this.capacity = capacity;
}
@Override
protected boolean removeEldestEntry(Map.Entry eldest) {
return super.size() > capacity;
}
public static void main(String[] args) {
LRUCacheDemo lruCacheDemo = new LRUCacheDemo(3); // 设置3个位置可用
lruCacheDemo.put(1, "a");
lruCacheDemo.put(2, "b");
lruCacheDemo.put(3, "c");
System.out.println(lruCacheDemo.keySet());
lruCacheDemo.put(4, "d");
System.out.println(lruCacheDemo.keySet());
lruCacheDemo.put(3, "c");
System.out.println(lruCacheDemo.keySet());
lruCacheDemo.put(3, "c");
System.out.println(lruCacheDemo.keySet());
lruCacheDemo.put(5, "x");
System.out.println(lruCacheDemo.keySet());
}
}
结果:
//true
//[1, 2, 3]
//[2, 3, 4]
//[2, 4, 3]
//[2, 4, 3]
//[4, 3, 5]
//false
//[1, 2, 3]
//[2, 3, 4]
//[2, 3, 4]
//[2, 3, 4]
//[3, 4, 5]