Heim >Java >javaLernprogramm >Wie sortiere ich Objektlisten mit mehreren Feldern in Java?

Wie sortiere ich Objektlisten mit mehreren Feldern in Java?

Barbara Streisand
Barbara StreisandOriginal
2024-11-04 08:20:30994Durchsuche

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

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

}); >

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


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!

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