У меня есть этот код, и я хочу понять, как он работает.RemoveEldestEntry в LinkedHashmap при попытке реализовать алгоритм LRU в java
public class LRUAlgoCacheImpl<K,V> implements IAlgoCache<K,V>{
private int capacity;
private LinkedHashMap<K,V> lhm;
public LRUAlgoCacheImpl(int capacity) {
lhm = new LinkedHashMap<K,V>(capacity+1,1.1f, true) {
protected boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return lhm.size()> capacity;
}
};
this.capacity=capacity;
}
Я понимаю, что она перекрывает removeEldestEntry
в LinkedHashMap
классе, но я не совсем понимаю, как. Я мог бы расширить LinkedHashmap
в своем объявлении класса без этого и просто делать регулярное переопределение, но я пытаюсь узнать больше. Может кто-нибудь объяснить это мне, пожалуйста? Спасибо заранее.
Привет, спасибо за ваш комментарий. Я не понял сам синтаксис, я имею в виду, что во время объявления нового объекта открываются круглые скобки и функция переопределения? Что это значит? Спасибо заранее – Timur
Это анонимный внутренний класс, проверьте ссылку в моем ответе –
Большое спасибо! – Timur