喵喵時(shí)光機(jī)
2019-11-11 16:06:44
我有一個(gè)包含三個(gè)字段(所有字符串類型)的“報(bào)表”對(duì)象列表-ReportKeyStudentNumberSchool我有一個(gè)排序代碼,就像-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()); }});由于某種原因,我沒(méi)有排序順序。一個(gè)建議在字段之間插入空格,但是為什么呢?您認(rèn)為代碼有什么問(wèn)題嗎?
3 回答

慕田峪4524236
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
您認(rèn)為代碼有什么問(wèn)題嗎?
是。為什么在比較它們之前將三個(gè)字段加在一起?
我可能會(huì)做這樣的事情:(假設(shè)字段按您希望排序的順序排列)
@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;
}
添加回答
舉報(bào)
0/150
提交
取消