Rumah >Java >javaTutorial >Bagaimana untuk Mengisih Senarai Objek dengan Pelbagai Medan di Jawa?

Bagaimana untuk Mengisih Senarai Objek dengan Pelbagai Medan di Jawa?

Barbara Streisand
Barbara Streisandasal
2024-11-04 08:20:301022semak imbas

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

Isih Senarai Objek dengan Pelbagai Medan:

Dalam kod pengisihan awal yang disediakan, penyatuan medan dalam perbandingan menjadikannya mencabar untuk mengasingkan medan untuk pengisihan. Untuk membetulkan ini, pertimbangkan untuk menambah ruang antara medan. Sebagai alternatif, anda boleh meneroka alternatif berikut:

Menggunakan Java 8 Lambdas:

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

    .thenComparing(Report::getStudentNumber)
    .thenComparing(Report::getSchool));

Kaedah Reflektif: BeanComparator:

Rantai Comparator = new ComparatorChain(Arrays.asList(
new BeanComparator ("saiz"),
BeanComparator("nrOfToppings") baharu,
BeanComparator("nama") baharu);

Collections.sort(pizza, rantai); >

Rangkaian Perbandingan Jambu Batu:

Collections.sort(pizza, Comparator baharu() {

}); >
@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(pizza, Comparator baharu() {

} );

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

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai Objek dengan Pelbagai Medan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn