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