El código de clasificación proporcionado parece incompleto y es posible que no produzca el orden esperado. Profundicemos en un enfoque más eficiente y completo usando Java 8 lambda.
Java 8 simplifica la clasificación de listas al proporcionar expresiones lambda intuitivas que permiten una lectura concisa y fácil código. Considere lo siguiente:
Collections.sort(reportList, Comparator.comparing(Report::getReportKey)
.thenComparing(Report::getStudentNumber)
.thenComparing(Report::getSchool));
Este enfoque basado en lambda secuencia el proceso de comparación, clasificando efectivamente la lista según los campos especificados en el orden de precedencia definido por el método .thenComparing().
El código original que proporcionó concatena las cadenas para la clave del informe, el número de estudiante y escuela:
return (record1.getReportKey() record1.getStudentNumber() record1.getSchool())
.compareTo(record2.getReportKey() record2.getStudentNumber() record2.getSchool());
En su lugar, para una clasificación adecuada, debes comparar los campos de forma independiente.
Aquí hay una versión mejorada de la función de clasificación usando lambda sintaxis:
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());});
Este código compara directamente los campos individuales, proporcionando un orden de clasificación más preciso.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3