Le code de tri fourni semble incomplet et peut ne pas produire l'ordre de tri attendu. Passons à une approche plus efficace et plus complète en utilisant Java 8 lambda.
Java 8 simplifie le tri des listes en fournissant des expressions lambda intuitives qui permettent des expressions concises et faciles à lire. code. Considérez les éléments suivants :
Collections.sort(reportList, Comparator.comparing(Report::getReportKey)
.thenComparing(Report::getStudentNumber)
.thenComparing(Report::getSchool));
Cette approche basée sur lambda séquence le processus de comparaison, triant efficacement la liste en fonction des champs spécifiés dans l'ordre de priorité défini par la méthode .thenComparing().
Le code d'origine que vous avez fourni concatène les chaînes de la clé de rapport, du numéro d'élève et de l'école :
return (record1.getReportKey() record1.getStudentNumber() record1.getSchool())
.compareTo(record2.getReportKey() record2.getStudentNumber() record2.getSchool());
Au lieu de cela, pour un tri correct, vous devez comparer les champs indépendamment.
Voici une version améliorée de la fonction de tri utilisant la syntaxe lambda :
Collections.sort(reportList, (record1, record2) -> {
int reportKeyComparison = record1.getReportKey().compareTo(record2.getReportKey());
if (reportKeyComparison != 0) {
return reportKeyComparison;
}
int studentNumberComparison = record1.getStudentNumber().compareTo(record2.getStudentNumber());
if (studentNumberComparison != 0) {
return studentNumberComparison;
}
return record1.getSchool().compareTo(record2.getSchool());});
Ce code compare directement les champs individuels, fournissant un ordre de tri plus précis.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3