web-dev-qa-db-fra.com

Trier la liste dans l'ordre inverse

J'ai List list1 en ordre direct. List<String> list = Ordering.natural().sortedCopy(asu2);

Comment changer l'ordre. Et je ne sais pas comment réécrire les méthodes de la classe extend, veuillez écrire avec des exemples ou parler clairement.

35
Eldar Nezametdinov

Utilisez ceci:

Collections.reverse(list);
86
morgano

Il existe une méthode reverseOrder dans la classe Collections qui renvoie un Comparator.

Vous pouvez l'utiliser comme Collections.sort(list, Collections.reverseOrder());

36
JHS

vous pouvez inverser n'importe quel type en mettant simplement "-" ou signe négatif devant votre retour.

Collections.sort(listed, new Comparator<Object>() {

    @Override
    public int compare(Object o1, Object o2) {

        return -o1.getLeft().compareTo(o2.getLeft());

    }
});
13
Fikreselam Elala

Si vous souhaitez trier la liste dans l'ordre naturel inverse, l'ordre de la goyave a ne méthode inverse :

List<String> list = Ordering.natural().reverse().sortedCopy(asu2);
7
assylias

Collections.reverse(List) inverse la liste donnée en place. Vous pouvez également utiliser Lists.reverse(List) de Guava pour créer une vue soutenue par la liste donnée qui est inversée commander sans le copier ni modifier la liste d'origine.

Et si vous voulez simplement créer une liste triée dans le sens inverse de l'ordre naturel, voir la réponse de @ assylias à propos de Ordering.natural().reverse().

1
ColinD

Pour inverser l'ordre des éléments de la liste, vous pouvez utiliser Collections.reverse(List<?> list)

Comment je le ferais est:

personsList.sort(Comparator.comparing(Person::getAge, Comparator.reverseOrder()));

Et bon codage :)

0