Heim > Java > javaLernprogramm > Wie sortiere ich Java-Objekte nach mehreren Feldern (Name und Alter)?

Wie sortiere ich Java-Objekte nach mehreren Feldern (Name und Alter)?

Susan Sarandon
Freigeben: 2024-12-15 19:58:16
Original
454 Leute haben es durchsucht

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

Java-Objekte nach mehreren Feldern sortieren: Name und Alter

Betrachten Sie ein Array von Person-Objekten, die jeweils ein ganzzahliges Alter und einen String-Namen enthalten . Das alphabetische Sortieren eines solchen Arrays nach Name und dann nach Alter erfordert einen benutzerdefinierten Sortieralgorithmus.

Verwenden von Collections.sort

Die Java Collections-Bibliothek bietet eine integrierte Sortiermethode Sie können Folgendes nutzen:

private static void order(List<Person> persons) {
    Collections.sort(persons, new Comparator<>() {
        @Override
        public int compare(Object o1, Object o2) {
            // Compare by name (lexicographically)
            String x1 = ((Person) o1).getName();
            String x2 = ((Person) o2).getName();
            int sComp = x1.compareTo(x2);
            // If names are different, return result
            if (sComp != 0) {
                return sComp;
            }
            // If names are equal, compare by age
            Integer x1 = ((Person) o1).getAge();
            Integer x2 = ((Person) o2).getAge();
            return x1.compareTo(x2);
        }
    });
}
Nach dem Login kopieren

Prozess Ablauf

  1. Instanziieren Sie einen Komparator, indem Sie die Vergleichsmethode implementieren.
  2. Vergleichen Sie die Namen zweier Objekte (lexografisch). Wenn unterschiedlich, wird das Ergebnis zurückgegeben.
  3. Wenn die Namen gleich sind, vergleichen Sie das Alter und geben Sie das Ergebnis zurück.

Durch Aufrufen von Collections.sort mit diesem benutzerdefinierten Komparator können Sie das Array sortieren von Personenobjekten in aufsteigender Reihenfolge des Namens, gefolgt von aufsteigender Reihenfolge des Alters.

Das obige ist der detaillierte Inhalt vonWie sortiere ich Java-Objekte 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage