Heim > Java > javaLernprogramm > Hauptteil

Wie sortiere ich Objektlisten mit mehreren Feldern in Java?

Barbara Streisand
Freigeben: 2024-11-04 08:20:30
Original
914 Leute haben es durchsucht

How to Sort Lists of Objects with Multiple Fields in Java?

Listen von Objekten mit mehreren Feldern sortieren:

Im anfänglichen Sortiercode wird die Verkettung der Felder im Vergleich angegeben macht es schwierig, die Felder zum Sortieren zu trennen. Um dies zu beheben, sollten Sie in Erwägung ziehen, Leerzeichen zwischen den Feldern einzufügen. Alternativ können Sie die folgenden Alternativen erkunden:

Verwenden von Java 8 Lambdas:

Collections.sort(reportList, Comparator.comparing(Report::getReportKey)

    .thenComparing(Report::getStudentNumber)
    .thenComparing(Report::getSchool));
Nach dem Login kopieren

Reflexive Methode: BeanComparator:

ComparatorChain chain = new ComparatorChain(Arrays.asList(
new BeanComparator ("size"),
new BeanComparator("nrOfToppings"),
new BeanComparator("name")));

Collections.sort(pizzas, chain);

Guava's CompareChain:

Collections.sort(pizzas, new Comparator() {

@Override  
public int compare(Pizza p1, Pizza p2) {  
    return ComparisonChain.start().compare(p1.size, p2.size).compare(p1.nrOfToppings, p2.nrOfToppings).compare(p1.name, p2.name).result();  
}  
Nach dem Login kopieren

}); >

Apache Commons CompareToBuilder:

Collections.sort(pizzas, new Comparator() {

@Override  
public int compare(Pizza p1, Pizza p2) {  
    return new CompareToBuilder().append(p1.size, p2.size).append(p1.nrOfToppings, p2.nrOfToppings).append(p1.name, p2.name).toComparison();  
}  
Nach dem Login kopieren
} );


Das obige ist der detaillierte Inhalt vonWie sortiere ich Objektlisten mit mehreren Feldern in Java?. 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