J'ai ce code et je veux comprendre comment cela fonctionne.RemoveEldestEntry dans LinkedHashmap en essayant d'implémenter l'algorithme LRU en 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;
}
Je comprends qu'il remplace le removeEldestEntry
dans la classe LinkedHashMap
, mais je ne comprends pas comment. Je pourrais étendre LinkedHashmap
dans ma déclaration de classe sans le faire et juste en faisant des remplacements réguliers, mais j'essaie d'en savoir plus. Quelqu'un pourrait-il m'expliquer s'il vous plaît? Merci d'avance.
Salut, je vous remercie pour votre commentaire.Je n'ai pas compris la syntaxe elle-même, je veux dire, pendant la déclaration de nouveaux objets j'ouvre les parenthèses et la fonction de remplacement? merci d'avance – Timur
Il s'agit d'une classe interne anonyme, vérifiez le lien dans ma réponse –
Merci beaucoup! – Timur