Je vais l'écrire parce que j'en avais besoin lors de la résolution du problème AtCoder. Je pense qu'il y a plusieurs façons de l'implémenter en Java, mais je décrirai l'implémentation qui, selon moi, peut être la plus courte.
reverseOrder ()
introduit dans Comment utiliser / créer un comparateur.Entrez le nombre de chiffres à saisir et la liste des numéros comme indiqué ci-dessous,
4
2 2 1 3
Il s'agit d'un exemple qui génère la liste des numéros d'entrée dans l'ordre décroissant.
Sample.java
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;
import static java.util.Comparator.reverseOrder;
public class Sample {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List<Long> inputList = new ArrayList<Integer>();
for(int i = 0; i < n ;i++) {
inputList.add(sc.nextInt());
}
//C'est la partie pertinente du tri
List<Integer> sortedList = inputList.stream().sorted(reverseOrder()).collect(Collectors.toList());
for(int a: sortedList) {
System.out.println(a);
}
}
}
[Mis à jour le 02/09/2020] Nous avons reçu un commentaire de @swordone. Si vous souhaitez garantir l'immuable, la partie de tri sera la suivante.
List<Integer> sortedList = inputList.stream().sorted(reverseOrder())
.collect(Collectors.collectingAndThen(Collectors.toList(), Collections::unmodifiableList));
Recommended Posts