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:
Collections.sort(reportList, Comparator.comparing(Report::getReportKey)
.thenComparing(Report::getStudentNumber) .thenComparing(Report::getSchool));
Rantai Comparator = new ComparatorChain(Arrays.asList(
new BeanComparator ("saiz"),
BeanComparator("nrOfToppings") baharu,
BeanComparator("nama") baharu);
Collections.sort(pizza, rantai); >
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(); }
} );
@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!