"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment trier une collection Java par un champ spécifique ?

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

Publié le 2024-11-09
Parcourir:140

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 d'identification 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 procéder :

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

class CustomObject implements Comparable {
    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 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 comparator = new Comparator() {
            @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);
    }
}

L'utilisation d'un comparateur vous offre une flexibilité maximale 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));

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

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3