Trier la liste par ordre décroissant en Java et générer une nouvelle liste de manière non destructive

Aperçu

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.

Politique de correspondance

Exemple d'implémentation

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

Trier la liste par ordre décroissant en Java et générer une nouvelle liste de manière non destructive
[Trier] Trier en suivant un utilisateur, suivant un suiveur, dans l'ordre d'être suivi (ordre décroissant)!
[Java8] Utilisez stream pour trier les tableaux de type int dans l'ordre décroissant
Trier la liste des objets Java
Différence entre les listes d'arry et les listes liées en Java
Générer OffsetDateTime à partir de Clock et LocalDateTime en Java
[Java] [POI] Créer un tableau dans Word et commencer une nouvelle ligne dans une cellule
Lors de l'utilisation d'une liste en Java, java.awt.List sort et une erreur se produit
Comment trier par ordre croissant / décroissant avec SQLite
[Java] Trier la liste à l'aide de flux et d'expressions lambda
Ecrire une classe en Kotlin et l'appeler en Java
Trier les valeurs de la carte par ordre croissant des clés dans Java TreeMap
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Nouveautés de Java 8
Obtenez des informations de localisation avec Rails et triez par ordre croissant
Nouveautés de Java 9,10,11
[Java, stream] Trier la liste d'objets en japonais par nom de propriété
Je veux faire une liste avec kotlin et java!
Même jugement / jugement de valeur égale / comparaison / ordre dans Swift et Java
Comment développer et enregistrer une application Sota en Java
Tri par ordre croissant en Java (Tri à bulles: algorithme de méthode d'échange simple)
Générer AWS Signature V4 en Java et demander l'API
[Neta] Sleep Sort en Java
Rechercher un sous-ensemble en Java
Agrégation de listes en Java (Collectors.groupingBy)
Liste Java en tant que groupe, tri, etc.
Créer une SkipList nommée en Java qui ressemble à un ensemble trié redis
[Java] Obtenez les dates des derniers lundi et dimanche dans l'ordre
Tri des données Décroissant, croissant / Rails
Comment créer un nouveau projet Gradle + Java + Jar dans Intellij 2016.03
Les deux listes Java sont ignorées dans l'ordre, null est ignoré et les doublons sont ignorés.
J'ai écrit une sorte de livre qui ressemble à Java
[Java] Créons un Minecraft Mod 1.16.1 [Ajouter et générer des arbres]
Convertir un tableau de chaînes en une liste d'entiers en Java
[Java] Créons un Minecraft Mod 1.14.4 [9. Ajouter et générer des arbres]
[Java] Créons un Minecraft Mod 1.14.4 [8. Ajouter et générer du minerai]
3 Implémentez un interpréteur simple en Java
J'ai créé un PDF avec Java.
Exemple d'encodage et de décodage en Java
Créer une nouvelle application avec Rails
Nouvelles fonctionnalités de Java 9 et exemple de code
Générer l'URL de l'API CloudStack en Java
Classe StringBuffer et StringBuilder en Java
Un exemple simple de rappels en Java
Liste des membres ajoutés dans Java 9
Trier dans la liste, pour mémo personnel
Comprendre equals et hashCode en Java
Restez coincé dans un Java Primer
Liste des types ajoutés dans Java 9
Bonjour tout le monde en Java et Gradle
Comment tester une méthode privée et la simuler partiellement en Java
Spécifiez l'ordre dans lequel les fichiers de configuration et les classes sont chargés dans Java
Création d'un projet (et d'un référentiel GitHub) à l'aide de Java et Gradle avec IntelliJ IDEA
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Une note sur les différences entre les interfaces et les classes abstraites en Java
J'ai écrit une fonction Lambda en Java et l'ai déployée avec SAM
[Java] Générez une liste restreinte à partir de plusieurs listes à l'aide de l'API Stream
Avoir un outil pour créer et ouvrir une nouvelle toile dans l'aperçu Mac
Créons une application TODO en Java 9 Créer un affichage TODO Trier par date et heure + Définir la date d'échéance sur la date actuelle