public void sortLeagueTable(List<LeagueTableItem> table) {
    Collections.sort(table, new Comparator<LeagueTableItem>(){
        public int compare(LeagueTableItem o1, LeagueTableItem o2){
            return o2.getPoints() - o1.getPoints();
        }
    });
}


此代码根据称为点的对象的值对两个列表进行排序。在基于值point对其进行排序之后,我想再次基于值goalScored对其进行排序。因此,如果两个团队的分数相等,我想根据goalScored值再次对其进行排序。

我怎样才能做到这一点?

最佳答案

只需向您的比较器添加另一个条件:

public int compare(LeagueTableItem o1, LeagueTableItem o2){
     int diff = o2.getPoints() - o1.getPoints();
     if (diff == 0) {
        diff = o2.goalScored() - o1.goalScored();
     }
     return diff;
}

09-25 20:58