通过其实例变量之一对对象的ArrayList进行排序

时间:2012-11-19 00:41:54

标签: java arraylist

Helllo,

我有一个OBJECTS(团队)的ArrayList。他们是足球队,我想通过他们的观点来解决这些问题。显然我完全清楚ArrayLists是按照它们的插入顺序排序的。

但我有一个TEAM课程,其中包含gamesWon,gamesLost,gamesTied和基于匹配结果的分数。

我已经准备好了所有的东西但是想通过它的点来整理一个ArrayList将是一个很酷的功能。

我已经在线阅读了Collections.sort(myArrayList),但这是基于ONE类型的变量进行排序,因为我在ArrayList中有对象,所以我想对此进行排序。

谢谢。

2 个答案:

答案 0 :(得分:3)

您应该为此定义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 :(得分:2)

  1. 使用您要检查的值定义实现java.util.Comparator<Team>的{​​{1}}。

  2. 使用接受compareTo的排序方法。它将使用Comparator<Object>的{​​{1}}方法,而不是compareTo中定义的方法(如果有的话)。

  3. 享受!