Heim > Java > javaLernprogramm > Wie sortiere ich ein Java-Array von Objekten nach mehreren Feldern (Name und Alter)?

Wie sortiere ich ein Java-Array von Objekten nach mehreren Feldern (Name und Alter)?

DDD
Freigeben: 2024-12-28 02:49:09
Original
709 Leute haben es durchsucht

How to Sort a Java Array of Objects by Multiple Fields (Name and Age)?

Mehrfeldsortierung in Java

Das Sortieren von Arrays von Objekten nach mehreren Feldern ist eine häufige Anforderung in der Programmierung. In dieser Frage möchten wir ein Array von Personenobjekten nach Namen und dann nach Alter sortieren.

Lösung:

Um dies zu erreichen, können wir die Sammlungen nutzen. Sortiermethode zusammen mit einer benutzerdefinierten Comparator-Implementierung. Ein Komparator ist eine Klasse, die die Vergleichslogik für zwei Objekte definiert. In unserem Fall benötigen wir als Fallback einen Komparator, der Personenobjekte anhand des Vornamens und des Alters vergleicht.

private static void order(List<Person> persons) {

    Collections.sort(persons, new Comparator() {

        public int compare(Object o1, Object o2) {

            String x1 = ((Person) o1).getName();
            String x2 = ((Person) o2).getName();
            int sComp = x1.compareTo(x2);

            if (sComp != 0) {
               return sComp;
            } 

            Integer x1 = ((Person) o1).getAge();
            Integer x2 = ((Person) o2).getAge();
            return x1.compareTo(x2);
    }});
}
Nach dem Login kopieren

Erklärung:

  • Sammlungen. sort: Diese Methode stellt die Sortierfunktion bereit.
  • Comparator: Wir erstellen eine anonyme innere Klasse, die die Comparator-Schnittstelle implementiert. Die Vergleichsmethode definiert, wie zwei Personenobjekte verglichen werden.
  • Namensvergleich: Zuerst werden die Namen der Personenobjekte mithilfe von String.compareTo verglichen.
  • Altersvergleich: Wenn die Namen gleich sind, Es vergleicht das Alter der Person-Objekte mit Integer.compareTo.

Nachdem die Liste mit dem benutzerdefinierten Komparator sortiert wurde, wird die Liste werden nach Namen in aufsteigender Reihenfolge und nach Alter in aufsteigender Reihenfolge innerhalb desselben Namens sortiert.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Java-Array von Objekten nach mehreren Feldern (Name und Alter)?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage