106 votes

Comment trier ArrayList<Long> en ordre décroissant ?

Comment trier un ArrayList<Long> en Java par ordre décroissant ?

250voto

WhiteFang34 Points 28652

Voici un moyen pour que votre list :

list.sort(null);
Collections.reverse(list);

Ou vous pouvez implémenter votre propre Comparator pour faire le tri et éliminer l'étape inverse :

list.sort((o1, o2) -> o2.compareTo(o1));

Ou encore plus simplement, utilisez Collections.reverseOrder() puisque vous ne faites que reculer :

list.sort(Collections.reverseOrder());

6 votes

l1 > l2 ? -1 : l1 == l2 ? 0 : 1 ce code est ridicule. Utilisez o1.compareTo(o2) alors.

4 votes

@ilya : oh ouais, bon point, bien que cela doive être o2.compareTo(o1) ici :)

2 votes

Liste.sort(Collections.reverseOrder()) ;

27voto

user449355 Points 4512
Comparator<Long> comparator = Collections.reverseOrder();
Collections.sort(arrayList, comparator);

0 votes

Seulement avec un argument générique sur cette déclaration de variable.

19voto

Vous pouvez utiliser le code suivant qui est donné ci-dessous ;

Collections.sort(list, Collections.reverseOrder());

ou si vous allez utiliser un comparateur personnalisé, vous pouvez utiliser comme il est donné ci-dessous

Collections.sort(list, Collections.reverseOrder(new CustomComparator());

Où CustomComparator est une classe de comparateur qui compare l'objet qui est présent dans la liste.

7voto

Manoj Points 2916

Trier normalement et utiliser Collections.reverse();

2voto

Mehrdad Points 70493

Trier, puis inverser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X