我正在研究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)