为了账号安全,请及时绑定邮箱和手机立即绑定

具有多个字段的Collections.sort

具有多个字段的Collections.sort

喵喵时光机 2019-11-11 16:06:44
我有一个包含三个字段(所有字符串类型)的“报表”对象列表-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;

}


查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 1158 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信