Maison > Java > javaDidacticiel > Comment trier des listes d'objets avec plusieurs champs en Java ?

Comment trier des listes d'objets avec plusieurs champs en Java ?

Barbara Streisand
Libérer: 2024-11-04 08:20:30
original
1063 Les gens l'ont consulté

How to Sort Lists of Objects with Multiple Fields in Java?

Tri des listes d'objets à plusieurs champs :

Dans le code de tri initial fourni, la concaténation des champs de la comparaison rend difficile la séparation des champs pour le tri. Pour remédier à cela, pensez à ajouter des espaces entre les champs. Vous pouvez également explorer les alternatives suivantes :

Utilisation de Java 8 Lambdas :

Collections.sort(reportList, Comparator.comparing(Report::getReportKey)

    .thenComparing(Report::getStudentNumber)
    .thenComparing(Report::getSchool));
Copier après la connexion

Méthode réflexive : BeanComparator:

ComparatorChain chain = new ComparatorChain(Arrays.asList(
new BeanComparator ("taille"),
new BeanComparator("nrOfToppings"),
new BeanComparator("name")));

Collections.sort(pizzas, chaîne);

Chaîne de comparaison de goyave :

Collections.sort(pizzas, nouveau Comparateur() {

@Override  
public int compare(Pizza p1, Pizza p2) {  
    return ComparisonChain.start().compare(p1.size, p2.size).compare(p1.nrOfToppings, p2.nrOfToppings).compare(p1.name, p2.name).result();  
}  
Copier après la connexion
}); >


Apache Commons CompareToBuilder:

Collections.sort(pizzas, nouveau Comparateur() {

} );
@Override  
public int compare(Pizza p1, Pizza p2) {  
    return new CompareToBuilder().append(p1.size, p2.size).append(p1.nrOfToppings, p2.nrOfToppings).append(p1.name, p2.name).toComparison();  
}  
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal