Bonjour,
j'ai un probleme avec la methode removeEldestEntry des LinkedHashMap.
voici une partie du code:
le pb c'est : removeEldestEntry(maplhm.entrySet())
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public class ma_classe{ private Map maplhm; private static final int MAX = 5; public ma_classe(){ maplhm= new LinkedHashMap(); } protected boolean removeEldestEntry(Map.Entry eldest) { return maplhm.size() > MAX; } public void ajouter (Val v){ if(removeEldestEntry(maplhm.entrySet())== true) //pas bon maplhm.remove(maplhm.size()); //pas bon maplhm.put(cle,v); //cle non indiquée ici mais fonctionne } }
le parametre n'est pas bon apparemment.
le compilo dit:
removeEldestEntry(java.util.Map.Entry) in ma_classe cannot be applied to (java.util.Set)
le but de la methode ajouter est de tester d'abord si la map contient le nb max d'entrées. Si c'est le cas, elle doit supprimer le premier element ajouté (le + ancien). et je ne sais pas comment indiquer quel est l'élément le + ancien.
dc 2 pbs:
1) le parametre de removeEldestEntry
2) trouver l'élément le premier ajouté ds la map dc le + ancien
dc si vous pouviez m'aider.
merci
[Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java
Partager