Bonjour,
je travaille sous java 1.4 et j'essaie d'implémenter une TreeMap avec un comparator comme ceci :
Le problème est le suivant : certaines clés disparaissent avec le comparator. Si par exemple j'insère dans la map 10 clés/valeurs, la plupart disparaitront. Si j'enlève le Comparator, tout est là par contre (mais pas dans le bon ordre bien évidemment...).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 TreeMap messages = new TreeMap(new MessagesComparator()); for (boucle...) { messages.put(cle, valeur); }
Au début j'ai pensé que c'était ma classe qui implément le Comparator qui était problématique, pourtant en débugguant on voit bien que toutes les clés ne sont pas comparées dans la méthode compare.
D'ailleurs voici l'implémentation de la méthode compare au cas où :
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 public int compare(Object o1, Object o2) { int resultatComparaison = 0; String cle1 = (String) o1; String cle2 = (String) o2; if (getPriorite(cle1) < getPriorite(cle2)) { resultatComparaison = -1; } if (getPriorite(cle1) > getPriorite(cle2)) { resultatComparaison = 1; } return resultatComparaison; }
Une idée ?
Partager