Bonjour,
J'ai le code suivant :
Cela trie une HashMap (suivant la valeur) dans l'ordre croissant. Ce code n'est pas de moi, je l'ai trouvé sur le net.
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
22 public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue( Map<K, V> map ) { List<Map.Entry<K, V>> list = new LinkedList<Map.Entry<K, V>>( map.entrySet() ); Collections.sort( list, new Comparator<Map.Entry<K, V>>() { public int compare( Map.Entry<K, V> o1, Map.Entry<K, V> o2 ) { return (o1.getValue()).compareTo( o2.getValue() ); } } ); List<Map.Entry<K, V>> list2 = Collection.reverse(list); Map<K, V> result = new LinkedHashMap<K, V>(); for (Map.Entry<K, V> entry : list) { result.put( entry.getKey(), entry.getValue() ); } return result; }
Je ne suis pas familier avec les Collection mais il semblerait que pour faire le trie d'une hashMap, ce code met le contenu de la hashMap dans une List pour ensuite trier la List (et renvoyer une hashMap à partir de cette List).
J'aimerai trier dans un ordre décroissant, comment faire ?
J'ai essayer :
mais cela ne marche pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Collection.reverse(list)
Auriez vous une solution ?
Merci d'avance pour votre aide.
Partager