LRUAlgoritm<String, String> lruAlgoritm = new LRUAlgoritm(2);
lruAlgoritm.put(«1»,«1»);
lruAlgoritm.put(«2»,«2»);
lruAlgoritm.put(«3»,«3»);
lruAlgoritm.put(«4»,«4»);
System.out.println(lruAlgoritm);
LFUCache<String, String> lfualogoritm = new LFUCache<>(3);
lfualogoritm.put(«1», «1»);
lfualogoritm.put(«2», «2»);
lfualogoritm.put(«3», «3»);
lfualogoritm.put(«4», «4»);
lfualogoritm.put(«5», «5»);
lfualogoritm.put(«2», «2»);
lfualogoritm.put("","");
lfualogoritm.get(«1»);
lfualogoritm.get(«2»);
lfualogoritm.get(«1»);
lfualogoritm.get(«10»);
System.out.println(lfualogoritm);
}
}
Правильно ли я понимаю по LFU cache, что при вставке нового ключа(вернее ключа с таким значением которое уже есть в кэше) само фреквенси(frequency), если было больше единицы, становится снова 1?
Если да то как сосздать блокировку что при такой ситуации не сбрасывалось фрекуенси?
как в этом коде сделать потокобезопасность. с чего начать какя методика перехода на потокобезопасный код?