我有一个包含三个字段(所有字符串类型)的“报表”对象列表-ReportKeyStudentNumberSchool我有一个排序代码,就像-Collections.sort(reportList, new Comparator<Report>() {@Overridepublic int compare(final Report record1, final Report record2) { return (record1.getReportKey() + record1.getStudentNumber() + record1.getSchool()) .compareTo(record2.getReportKey() + record2.getStudentNumber() + record2.getSchool()); }});由于某种原因,我没有排序顺序。一个建议在字段之间插入空格,但是为什么呢?您认为代码有什么问题吗?
3 回答

慕田峪4524236
TA贡献1875条经验 获得超5个赞
您认为代码有什么问题吗?
是。为什么在比较它们之前将三个字段加在一起?
我可能会做这样的事情:(假设字段按您希望排序的顺序排列)
@Override public int compare(final Report record1, final Report record2) {
int c;
c = record1.getReportKey().compareTo(record2.getReportKey());
if (c == 0)
c = record1.getStudentNumber().compareTo(record2.getStudentNumber());
if (c == 0)
c = record1.getSchool().compareTo(record2.getSchool());
return c;
}
添加回答
举报
0/150
提交
取消