问题:设计一个最近最少使用缓存。支持get和put操作
1、如果get(key)中,key在缓存中不存在,返回-1
2、put(key,value),如果key在缓存中不存在,则插入。当缓存到达容量时,需要删除最近最小使用项
要求时间复杂度为O(1)
思路:使用LinkedHashMap,实现类继承它。设置accessOrder为true,当get时,调整对应项位置,同时重写removeEldestEntry,当容器大小大于容量时作删除
具体代码参考:
https://github.com/wuli2496/OJ/tree/master/LeetCode/LRU%20Cache