Leetcode146-LRU缓存用LinkedHashMap实现

37 阅读1分钟

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;
    }
}