Bonjour,

J'ai le code suivant :

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;
    }
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.
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Collection.reverse(list)
mais cela ne marche pas.
Auriez vous une solution ?

Merci d'avance pour votre aide.