小编vik*_*i s的帖子

在以下LRU实现的get方法中有什么用map.remove()?


我正在研究LRU并使用下面的代码片段来理解它的实现.请告诉我map.remove(key)方法调用的用途get(int key).我们不能只使用map.put(key,value),这将更新地图中的密钥条目.
我在下面代码.

class LRUMap<K, V> extends LinkedHashMap<K, V>{
    private final int MAX_NUM;
    public LRUMap(int capacity) {
        super(capacity);
        MAX_NUM = capacity;
    }
    protected boolean removeEldestEntry(Map.Entry eldest) {
       return /*true*/ size() > MAX_NUM;
    }
}
public class LRU {
    LRUMap<Integer, Integer> map;
    public LRU(int capacity) {
        map = new LRUMap<Integer, Integer>(capacity);
    }
    public int get(int key) {
        if (map == null || map.get(key) == null)
           return -1;
        int value = map.get(key);
        map.remove(key);
        map.put(key, value);
        return …
Run Code Online (Sandbox Code Playgroud)

java lru

2
推荐指数
1
解决办法
82
查看次数

标签 统计

java ×1

lru ×1