458 votes

Comment trier une liste/un tableau ?

J'ai une liste de doubles en java et je veux trier ArrayList en ordre décroissant.

L'entrée ArrayList est comme ci-dessous :

List<Double> testList = new ArrayList();

testList.add(0.5);
testList.add(0.2);
testList.add(0.9);
testList.add(0.1);
testList.add(0.1);
testList.add(0.1);
testList.add(0.54);
testList.add(0.71);
testList.add(0.71);
testList.add(0.71);
testList.add(0.92);
testList.add(0.12);
testList.add(0.65);
testList.add(0.34);
testList.add(0.62);

Le résultat devrait être le suivant

0.92
0.9
0.71
0.71
0.71
0.65
0.62
0.54
0.5
0.34
0.2
0.12
0.1
0.1
0.1

2 votes

TestList.sort(Comparator.reverseOrder()) ;

6voto

Thiago Points 595

Vous pouvez faire comme ça :

List<String> yourList = new ArrayList<String>();
Collections.sort(yourList, Collections.reverseOrder());

Collection dispose d'un comparateur par défaut qui peut vous aider à cet égard.

De même, si vous souhaitez utiliser certaines des nouvelles fonctionnalités de Java 8, vous pouvez le faire :

List<String> yourList = new ArrayList<String>();
yourList = yourList.stream().sorted(Collections.reverseOrder()).collect(Collectors.toList());

5voto

Franklin Okeme Points 59

Si vous utilisez Java SE 8, ceci pourrait vous aider.

//create a comparator object using a Lambda expression
Comparator<Double> compareDouble = (d1, d2) -> d1.compareTo(d2);

//Sort the Collection in this case 'testList' in reverse order
Collections.sort(testList, Collections.reverseOrder(compareDouble));

//print the sorted list using method reference only applicable in SE 8
testList.forEach(System.out::println);

5voto

Sujay U N Points 1688

|*| Tri d'une liste :

import java.util.Collections;

|=> Trier par ordre ascendant :

Collections.sort(NamAryVar);

|=> Trier Dsc Order :

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

|*| Inverser l'ordre de la liste :

Collections.reverse(NamAryVar);

5voto

user2244734 Points 1

Dans JAVA 8, c'est beaucoup plus facile maintenant.

List<String> alphaNumbers = Arrays.asList("one", "two", "three", "four");
List<String> alphaNumbersUpperCase = alphaNumbers.stream()
    .map(String::toUpperCase)
    .sorted()
    .collect(Collectors.toList());
System.out.println(alphaNumbersUpperCase); // [FOUR, ONE, THREE, TWO]

-- Pour l'inverse, utilisez ceci

.sorted(Comparator.reverseOrder())

4voto

manikant gautam Points 1625

Vous pouvez utiliser comme ça

ArrayList<Group> groupList = new ArrayList<>();
Collections.sort(groupList, Collections.reverseOrder());
Collections.reverse(groupList);

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