Maison > Java > javaDidacticiel > Comment trier un tableau d'objets par nom en Java ?

Comment trier un tableau d'objets par nom en Java ?

Patricia Arquette
Libérer: 2024-11-16 04:31:03
original
606 Les gens l'ont consulté

How do I sort an array of objects by name in Java?

Tri d'un tableau d'objets par nom en Java

Lorsque vous travaillez avec des tableaux d'objets en Java, il devient nécessaire de les trier pour l'organisation et une récupération facile. Trier un tableau d'objets en fonction d'un champ particulier peut être une tâche difficile si vous ne savez pas comment extraire et comparer les valeurs.

Pour trier un tableau d'objets en fonction d'un champ spécifique, tel que "nom", vous devez implémenter l'interface Comparable ou fournir un comparateur personnalisé. Puisque vos objets n'ont pas de champ Chaîne nommé « nom », nous allons créer un comparateur pour effectuer le tri.

Extraire le champ Nom

Pour extraire le nom des objets, vous pouvez utiliser la méthode toString() déjà implémentée. Supposons que chaque objet possède une méthode toString() qui renvoie une représentation sous forme de chaîne des champs de l'objet, y compris le nom :

public String toString() {
  return (name + "\n" + id + "\n" + author + "\n" + publisher + "\n");
}
Copier après la connexion

Création d'un comparateur

To trions le tableau par nom, nous devons créer un comparateur qui compare les objets en fonction de leurs noms :

Comparator<Book> comparator = new Comparator<Book>() {

  public int compare(Book o1, Book o2) {
    return o1.name.compareTo(o2.name);
  }
};
Copier après la connexion

Dans le comparateur ci-dessus, la méthode compare() compare deux objets Book et renvoie un entier basé sur le résultat de la comparaison. Si le nom de o1 est lexicographiquement plus petit que le nom de o2, il renvoie un entier négatif. Si les noms sont égaux, il renvoie 0. Sinon, il renvoie un entier positif.

Tri du tableau

Enfin, vous pouvez utiliser Collections.sort() méthode pour trier le tableau à l'aide du comparateur :

List<Book> books = new ArrayList<Book>();

Collections.sort(books, comparator);
Copier après la connexion

Cela triera le tableau d'objets par le champ "nom" par ordre croissant. Vous pouvez modifier le comparateur pour trier par ordre décroissant en inversant la logique de comparaison.

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