LRU 缓存机制
解法一:LinkedHashMap
import java.util.LinkedHashMap;
import java.util.Map;
public class LeetCode_146 {
public static void main(String[] args) {
LRUCache lRUCache = new LRUCache(2);
lRUCache.put(1, 1);
lRUCache.put(2, 2);
lRUCache.get(1);
lRUCache.put(3, 3);
lRUCache.get(2);
lRUCache.put(4, 4);
lRUCache.get(1);
lRUCache.get(3);
lRUCache.get(4);
}
}
class LRUCache extends LinkedHashMap<Integer, Integer> {
private int capacity;
public LRUCache(int capacity) {
super(capacity, 0.75F, true);
this.capacity = capacity;
}
public int get(int key) {
return super.getOrDefault(key, -1);
}
public void put(int key, int value) {
super.put(key, value);
}
@Override
protected boolean removeEldestEntry(Map.Entry<Integer, Integer> eldest) {
return size() > capacity;
}
}