Maison > Java > javaDidacticiel > Comment puis-je trier un tableau de données de voitures par couleur à l'aide d'un comparateur personnalisé en Java ?

Comment puis-je trier un tableau de données de voitures par couleur à l'aide d'un comparateur personnalisé en Java ?

DDD
Libérer: 2024-12-10 20:25:11
original
577 Les gens l'ont consulté

How Can I Sort a Data Table of Cars by Color Using a Custom Comparator in Java?

Tri personnalisé avec comparateur pour un tableau de données

Vous avez mentionné utiliser un tableau de données pour afficher les listes de voitures et vouloir les trier par couleur de voiture , pas par ordre alphabétique. Pour y parvenir, vous pouvez exploiter l'interface Comparator de Java.

Vous avez essayé d'utiliser Comparable et Comparator, mais cela semble autoriser uniquement le tri par ordre alphabétique. Voici une approche améliorée utilisant un comparateur personnalisé :

Commencez par définir une énumération pour les couleurs de voiture, comme suggéré :

public enum PaintColors {
    SILVER, BLUE, MAGENTA, RED
}
Copier après la connexion

Mettez à jour votre ColorComparator pour comparer en fonction de l'énumération PaintColors :

static class ColorComparator implements Comparator<Car> {

    public int compare(Car c1, Car c2) {
        return c1.getColor().compareTo(c2.getColor());
    }
}
Copier après la connexion

Remplacez le champ de couleur String dans Car par PaintColors enum :

private PaintColors color;
Copier après la connexion

Dans votre méthode principale, mettez à jour votre liste de voitures et triez à l'aide du comparateur personnalisé :

carList.add(new Car("Ford", PaintColors.SILVER));

...

Collections.sort(carList, new ColorComparator());
Copier après la connexion

Cette approche utilise une énumération pour représenter les couleurs des voitures, vous permettant de définir un ordre de tri personnalisé dans la déclaration enum. Le ColorComparator utilise ensuite l'ordre défini pour trier efficacement la liste des voitures.

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