Maison > Java > javaDidacticiel > Comment trier une collection Java par un champ spécifique ?

Comment trier une collection Java par un champ spécifique ?

Susan Sarandon
Libérer: 2024-11-07 02:02:02
original
231 Les gens l'ont consulté

How to Sort a Java Collection by a Specific Field?

Tri personnalisé d'une collection Java par un champ spécifique

En Java, une tâche courante consiste à organiser les données dans une collection en fonction d'un critère personnalisé. Supposons que nous ayons une collection d'objets avec un champ id et que nous souhaitions les trier en fonction de ce champ.

Pour y parvenir, nous pouvons utiliser un comparateur, qui nous permet de spécifier notre propre logique de classement. Voici comment :

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

class CustomObject implements Comparable<CustomObject> {
    private int id;
    
    public int getId() { return id; }
    
    @Override
    public int compareTo(CustomObject other) {
        return this.id - other.id;
    }
}

public class CustomCollectionSorting {

    public static void main(String[] args) {
        // Initialize the list of CustomObject
        List<CustomObject> list = new ArrayList<>();
        list.add(new CustomObject(3));
        list.add(new CustomObject(5));
        list.add(new CustomObject(1));
        list.add(new CustomObject(2));

        // Create a comparator
        Comparator<CustomObject> comparator = new Comparator<CustomObject>() {
            @Override
            public int compare(CustomObject left, CustomObject right) {
                return left.getId() - right.getId();
            }
        };
        
        // Sort the collection
        Collections.sort(list, comparator);

        // Display the sorted list
        System.out.println(list);
    }
}
Copier après la connexion

L'utilisation d'un comparateur vous offre un maximum de flexibilité dans la définition de votre logique de tri. Alternativement, si CustomObject implémente Comparable, vous pouvez utiliser la méthode Collections.sort(list) plus simple.

Avec Java 8, le tri des collections est encore plus simple :

list.sort((left, right) -> left.getId() - right.getId());
list.sort(Comparator.comparing(CustomObject::getId));
Copier après la connexion

Ces exemples montrent comment trier une collection Java en fonction d'un champ spécifique, ce qui facilite l'organisation et la manipulation des données en fonction d'exigences spécifiques.

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!

source:php.cn
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