Heim >Java >javaLernprogramm >Wie sortiere ich in Java ein Array von Objekten nach Namen?
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"); }
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); } };
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);
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!