linkedHashMap能保证顺序,具体的看这个文章:juejin.im/post/5ace2b…
代码如下,简洁好多,比我自己实现的链表形式优化好多,囧。链表形式170ms,该版本140ms,囧:
public 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) {
Integer value = super.get(key);
if (value == null) {
return -1;
}
return value;
}
public void put(int key, int value) {
super.put(key, value);
}
@Override
protected boolean removeEldestEntry(Map.Entry<Integer, Integer> eldest) {
return this.size() > capacity;
}
}