Heim >Java >javaLernprogramm >Wie sortiere ich eine Liste von Objekten nach mehreren Feldern in Java?

Wie sortiere ich eine Liste von Objekten nach mehreren Feldern in Java?

Linda Hamilton
Linda HamiltonOriginal
2024-12-15 11:12:11845Durchsuche

How to Sort a List of Objects by Multiple Fields in Java?

Sortieren von Objekten nach mehreren Feldern in Java

Das Sortieren von Daten nach mehreren Feldern ist ein häufiger Vorgang in der Programmierung. In dieser Frage wird untersucht, wie eine Reihe von Personenobjekten alphabetisch nach Namen und dann nach Alter sortiert werden.

Collections.sort für die Mehrfeldsortierung verwenden

Um dies zu erreichen, Wir können die Collections.sort-Methode nutzen, die eine benutzerdefinierte Sortierung basierend auf einem bereitgestellten Comparator ermöglicht. Der Komparator bestimmt, wie zwei Objekte verglichen werden sollen, und ermöglicht es uns, eine Sortierstrategie für mehrere Felder zu definieren.

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

In diesem Code vergleicht die Vergleichsmethode zunächst die Namen der beiden Personenobjekte (x1 und x2). ). Wenn sie unterschiedlich sind, wird das Ergebnis der String.compareTo-Methode zurückgegeben, das angibt, welche Zeichenfolge lexikographisch größer ist. Wenn die Namen gleich sind, wird das Alter (x1 und x2) mit der Methode „compareTo“ für Integer-Objekte verglichen.

Mit dieser Comparator-Strategie sortiert die Methode „Collections.sort“ die Liste der Personenobjekte alphabetisch nach Namen, und wenn die Namen gleich sind, werden sie weiter nach Alter sortiert.

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

Stellungnahme:
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