Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Mengisih Senarai Objek dengan Pelbagai Medan di Jawa?

Barbara Streisand
Lepaskan: 2024-11-04 08:20:30
asal
914 orang telah melayarinya

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));
Salin selepas log masuk

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();  
}  
Salin selepas log masuk

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();  
}  
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan