OVH Cloud OVH Cloud

Classer une TreeMap sur les valeur ?

11 réponses
Avatar
Frogger
Suite à mon post précédent, il semble qu'il faille utiliser une TreeMap
plutôt qu'un Hashtable, jusque là pas de souci.

Mais comment classer ce treemap par les valeurs ? Ces valeurs sont des
integer.

Merci

1 réponse

1 2
Avatar
Nicolas Repiquet
"Frogger" a écrit dans le message news:
bnmeed$bs9$
c'est ça en effet, merci

Par contre je comprend pas tout.

Dans ma map, j ai 52 éléments.

Quands je fais SortedSet entries = new TreeSet(ComparatorTest.instance);
je me retrouve avec un entries.size() = 5 !! Où sont passés les autres ?


C'est ma faute, ma très grande faute, mea maxima culpa.

En fait un set ne conserve qu'une instance quand on lui donne des objets
égaux, et comme le comparateur considère comme égales deux MapEntry qui ont
des valeurs égales ... y a problème !

Autre solution donc :


Object[] entries = map.entrySet().toArray();

Arrays.sort( entries, MyMapEntryComparator.instance );

for( int i = 0 ; i < entries.length ; i++ ) {
System.out.println( ((Map.MapEntry)entries[i]).getValue());
}

Voilà, j'espère que c'est bon cette fois.

-- Nicolas Repiquet

1 2