Une seule opération est nécessaire pour trier la collection dans l'ordre inverse.
Chaîne implémente Interface comparable. Le javadoc pour java.lang.Comparable # compareTo() dit qu'il retourne:
un entier négatif, nul ou un nombre entier positif que cet objet est inférieure, égale ou supérieure à la objet spécifié
Pour inverser l'ordre de collection, vous pouvez:
[recommandé] u se Comparator.reverseOrder (javadoc) qui
Renvoie un comparateur qui impose la mise en ordre inverse de l' comparateur spécifié. (...)
List<String> strings = Arrays.asList("a","b","d", "c", "e");
reversedOrderedStrings = strings.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.joining(","));
Ordre inverse des paramètres par rapport
reversedOrderedStrings = strings.stream()
.sorted((s1, s2) -> s2.compareTo(s1))
.collect(Collectors.joining(","));
[non recommandé] changer le signe de la méthode compareTo(). Ce n'est pas recommandée car elle peut provoquer le débordement numérique pour Integer.MIN_VALUE
reversedOrderedStrings = strings.stream()
.sorted((s1, s2) -> -s1.compareTo(s2))
.collect(Collectors.joining(","));
sortie pour tous est le même:
System.out.println(reversedOrderedStrings);
e,d,c,b,a
C'est ce que j'attendais! Thx, TDRS –
Je pense que vous vouliez dire 'Comparator.reverseOrder()' au lieu de 'Collection' – 4castle