排序 数组 通过其实例变量之一列出对象



Helllo,

我有一个对象(团队)的数组列表。他们是足球队,我想通过他们的积分来整理他们。显然,我完全知道 ArrayList 是通过插入顺序排序的。

但是我有一个团队类,里面有游戏赢了、游戏输了、游戏平局和基于比赛结果的积分。

我已经准备好了一切,但认为通过它的点整理 ArrayList 将是一个很酷的功能。

我已经在线阅读了Collections.sort(myArrayList),但这是基于一种类型的变量进行排序的,并且由于我在ArrayList中有对象,我想对此进行排序。

谢谢。

马可

你应该

为此定义一个Comparator

public class PointsBasedTeamComparator implements Comparator<Team> {
    public int compare(Team t1, Team t2) {
        //return the result of points comparison of t1 and t2
    }
}

并按如下方式使用它

Collections.sort(teams, new PointsBasedTeamComparator());
  1. 定义一个java.util.Comparator<Team>,该使用要检查的值实现compareTo

  2. 使用接受Comparator<Object>的排序方法。它将使用您ComparatorcompareTo方法,而不是Team中定义的方法(如果有的话)。

  3. 享受!

相关内容