Heim > Java > javaLernprogramm > Wie sortiere ich in Java ein Array von Objekten nach Namen?

Wie sortiere ich in Java ein Array von Objekten nach Namen?

Patricia Arquette
Freigeben: 2024-11-16 04:31:03
Original
609 Leute haben es durchsucht

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

Sortieren eines Arrays von Objekten nach Namen in Java

Beim Arbeiten mit Arrays von Objekten in Java ist es notwendig, diese zur Organisation zu sortieren und einfaches Abrufen. Das Sortieren eines Arrays von Objekten nach einem bestimmten Feld kann eine anspruchsvolle Aufgabe sein, wenn Sie nicht sicher sind, wie Sie die Werte extrahieren und vergleichen sollen.

Um ein Array von Objekten nach einem bestimmten Feld zu sortieren, z. B. „Name“, Sie müssen die Comparable-Schnittstelle implementieren oder einen benutzerdefinierten Comparator bereitstellen. Da Ihre Objekte kein String-Feld mit dem Namen „Name“ haben, erstellen wir einen Komparator, um die Sortierung durchzuführen.

Das Namensfeld extrahieren

Zum Extrahieren Um den Namen der Objekte zu ermitteln, können Sie die bereits implementierte toString()-Methode verwenden. Nehmen wir an, dass jedes Objekt über eine toString()-Methode verfügt, die eine Zeichenfolgendarstellung der Felder des Objekts zurückgibt, einschließlich des Namens:

public String toString() {
  return (name + "\n" + id + "\n" + author + "\n" + publisher + "\n");
}
Nach dem Login kopieren

Erstellen eines Komparators

To Um das Array nach Namen zu sortieren, müssen wir einen Komparator erstellen, der die Objekte anhand ihrer Namen vergleicht:

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

  public int compare(Book o1, Book o2) {
    return o1.name.compareTo(o2.name);
  }
};
Nach dem Login kopieren

Im obigen Komparator vergleicht die Methode „compare()“ zwei Book-Objekte und gibt eine Ganzzahl basierend auf zurück das Vergleichsergebnis. Wenn der Name von o1 lexikografisch kleiner als der Name von o2 ist, wird eine negative ganze Zahl zurückgegeben. Wenn die Namen gleich sind, wird 0 zurückgegeben. Andernfalls wird eine positive Ganzzahl zurückgegeben.

Sortieren des Arrays

Schließlich können Sie Collections.sort() verwenden. Methode zum Sortieren des Arrays mithilfe des Komparators:

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

Collections.sort(books, comparator);
Nach dem Login kopieren

Dadurch wird das Array von Objekten nach dem Feld „Name“ in aufsteigender Reihenfolge sortiert. Sie können den Komparator so ändern, dass er in absteigender Reihenfolge sortiert, indem Sie die Vergleichslogik umkehren.

Das obige ist der detaillierte Inhalt vonWie sortiere ich in Java ein Array von Objekten nach Namen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage