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"); }
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); } };
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);
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!