当前位置:   article > 正文

Collections.sort 依据多个字段排序_collections.sort多字段排序

collections.sort多字段排序

今天有个需求,需要根据用户报名的课程进行排序。排序的规则包含了4个方面:有直播优先;当前专题优先;有直播的,按直播时间正序;无直播的,按最后学习时间倒序。在使用Collections.sort,最后写出来的效果,利用多个字段,对列表进行排序

  1. Collections.sort(result, new Comparator<EnrolmentVO>() {
  2. @Override
  3. public int compare(EnrolmentVO a, EnrolmentVO b) {
  4. // 有直播的优先
  5. if (!a.getLiveStatus().equals(b.getLiveStatus())) {
  6. return a.getLiveStatus().compareTo(b.getLiveStatus());
  7. }
  8. // 当前专题优先
  9. if (!a.getCurrentSpecialLive().equals(b.getCurrentSpecialLive())) {
  10. return b.getCurrentSpecialLive().compareTo(a.getCurrentSpecialLive());
  11. }
  12. // 有直播的,按直播时间正序
  13. if (a.getLatestLiveTime() != null && b.getLatestLiveTime() != null) {
  14. return a.getLatestLiveTime().compareTo(b.getLatestLiveTime());
  15. }
  16. // 无直播的,按最后学习时间倒序
  17. return b.getLastLearningTime().compareTo(a.getLastLearningTime());
  18. }
  19. });

这样比较清晰,比之前用sort定义数值再来排序,更容易扩展




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/825607
推荐阅读
相关标签
  

闽ICP备14008679号