Maison  >  Article  >  Java  >  Comment trier les collections Java : expressions comparatives, comparables et Lambda ?

Comment trier les collections Java : expressions comparatives, comparables et Lambda ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-07 22:49:02607parcourir

How to Sort Java Collections: Comparator, Comparable, and Lambda Expressions?

Tri des collections Java

Pour trier une collection Java, il existe plusieurs approches à considérer, en fonction des exigences spécifiques. Une option courante consiste à utiliser un Comparator.

Utiliser un Comparator :

Créez une classe Comparator qui implémente l'interface Comparator. Dans la méthode compare(), vous définissez la logique de comparaison des objets. Par exemple, pour trier un CustomObject par son champ id :

Comparator<CustomObject> comparator = new Comparator<CustomObject>() {
    @Override
    public int compare(CustomObject left, CustomObject right) {
        return left.getId() - right.getId();
    }
};

Ensuite, utilisez le Comparator pour trier la collection à l'aide de Collections.sort() :

Collections.sort(list, comparator);

Alternativement, si votre CustomObject implémente Comparable, vous pouvez utiliser directement Collections.sort(list).

Avec les expressions lambda du JDK 8 :

Introduites dans le JDK 8, les expressions lambda offrent un moyen pratique pour écrire des comparateurs :

Collections.sort(list, (left, right) -> left.getId() - right.getId());

Notation abrégée avec JDK 8 :

Pour des scénarios simples, la notation abrégée suivante peut être utilisée pour trier selon un champ spécifique :

list.sort(Comparator.comparing(CustomObject::getId));

En fin de compte, la meilleure approche pour trier une collection Java dépend des besoins spécifiques et de la version Java utilisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn