[JAVA] Comment trier une liste à l'aide du comparateur

Dans Java 8, nous organiserons la méthode de tri de List.

Java 7 and below

Revue de l'ère Java 7

List<String> nameList = Arrays.asList("Takahashi", "Tanaka", "Suzuki");
Collections.sort(nameList);

Java 8 ou version ultérieure

À partir de Java 8, sort (Comparator) a été ajouté à List et vous pouvez l'utiliser pour trier la liste.

nameList.sort(Comparator.comparingInt(String::length));

Trier par plusieurs conditions (longueur de la chaîne de caractères -> ordre alphabétique). Vous pouvez ajouter des conditions de tri en utilisant thenComparing ().

nameList.sort(Comparator.comparingInt(String::length)
	.thenComparing(Comparator.naturalOrder()));

De plus, avec l'introduction de Stream, vous pouvez générer des listes avec Stream # trié.

List<String> sortedList = nameList.stream().sorted()
		.collect(Collectors.toList());

Utilisation de Lambda

Trier par longueur de chaîne.

List<String> sortedList = nameList.stream().sorted((s1, s2) -> s1.length() - s2.length())
		.collect(Collectors.toList());

Trier par ordre alphabétique.

List<String> sortedList = nameList.stream().sorted((s1, s2) -> s1.compareTo(s2))
		.collect(Collectors.toList())

Utilisation du comparateur

Trier par longueur de chaîne.

List<String> sortedList = nameList.stream().sorted(
		Comparator.comparingInt(String::length)).collect(Collectors.toList());

Trier par ordre alphabétique.

List<String> sortedList = nameList.stream().sorted(
		Comparator.naturalOrder()).collect(Collectors.toList())

Tri de plusieurs conditions avec Comparator

Longueur de la chaîne-> Trier par ordre alphabétique. Vous pouvez ajouter des conditions de tri en utilisant thenComparing ().

List<String> sortedList = nameList.stream().sorted(
		Comparator.comparingInt(String::length)
		.thenComparing(Comparator.naturalOrder())).collect(Collectors.toList());

Tri de la liste d'objets avec Comparator

List<Person> sortedList = personList.stream().sorted(new Comparator<Person>(){

	@Override
	public int compare(Person o1, Person o2) {
		return o1.getName().compareTo(o2.getName());
	}
			
}).collect(Collectors.toList());

Recommended Posts

Comment trier une liste à l'aide du comparateur
Comment exécuter un contrat avec web3j
Comment trier une liste de SelectItems
[Rails] Comment créer un graphique à l'aide de lazy_high_charts
Comment supprimer un contrôleur, etc. à l'aide d'une commande
[Ethereum] Comment exécuter un contrat en utilisant web3j-Part 2-
Comment générer une clé primaire à l'aide de @GeneratedValue
java: Comment écrire une liste de types génériques [Note]
Comment laisser un commentaire
Comment supprimer des éléments d'adaptateur personnalisés à l'aide d'un modèle personnalisé
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment insérer une vidéo
Comment créer une méthode
Comment autoriser à l'aide de graphql-ruby
Comment générer des valeurs de tableau sans utiliser d'instruction for
Comment joindre une table sans utiliser DBFlute et SQL
Comment s'inscrire en tant que client dans Square à l'aide de Tomcat
Comment créer un conteneur Java
Comment signer Minecraft MOD
Comment créer un pilote JDBC
Trier la liste des objets Java
[Swift] Comment envoyer une notification
Comment créer un écran de démarrage
Comment créer un plug-in Jenkins
[Java] Comment utiliser List [ArrayList]
Comment faire un projet Maven
Comment créer un tableau Java
Comment créer CloudStack à l'aide de Docker
Comment créer un fichier jar et un fichier war à l'aide de la commande jar
Comment créer un hinadan pour un projet Spring Boot à l'aide de SPRING INITIALIZR
[Rails 6] Comment créer un écran de saisie de formulaire dynamique à l'aide de cocoon
Comment afficher une liste de chaînes dans JSF sous forme de chaînes séparées par des virgules
Comment faire un diamant révolutionnaire en utilisant Java pour déclaration wwww
Comment créer un résumé de calendrier Java
Pourquoi attribuer ArrayList à la liste
Un mémorandum sur l'utilisation d'Eclipse
[Rails] Comment télécharger des images à l'aide de Carrierwave
[Basique] Comment écrire un auto-apprentissage Dockerfile ②
Comment insérer une vidéo dans Rails
[Java] Comment ajouter des données à la liste (add, addAll)
[Java] Comment calculer l'âge à l'aide de LocalDate
Comment ajouter un nouveau hachage / tableau
[Introduction à Java] Comment écrire un programme Java
Comment créer un référentiel Maven pour 2020
Comment créer un robot Discord (Java)
[Swift5] Comment créer un écran de démarrage
[rails] Comment créer un modèle partiel
[Swift5] Comment mettre en œuvre une animation à l'aide de "lottie-ios"
Pour implémenter la publication d'images à l'aide de rails
Comment publier une bibliothèque dans jCenter