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!