Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—按对象实例对Arraylist进行排序。_Java_Sorting_Arraylist_Ranking - Fatal编程技术网

Java—按对象实例对Arraylist进行排序。

Java—按对象实例对Arraylist进行排序。,java,sorting,arraylist,ranking,Java,Sorting,Arraylist,Ranking,到目前为止,我已经创建了一个锦标赛排名程序,它有两个类。一个团队课程和一个得分课程。team类保存实例变量,例如基于赢/输/平的elo分数加倍。评分类需要一个团队的数组列表,计划是创建一个新的团队数组列表,按照从最高elo到最低elo的顺序排列 我的问题是,最好的方式是什么?我将如何根据elo排名对团队进行排序,并将其添加到新的Arraylist中 这里有一种方法: class Scoring{ private ArrayList<Team> teams; public vo

到目前为止,我已经创建了一个锦标赛排名程序,它有两个类。一个团队课程和一个得分课程。team类保存实例变量,例如基于赢/输/平的elo分数加倍。评分类需要一个团队的数组列表,计划是创建一个新的团队数组列表,按照从最高elo到最低elo的顺序排列

我的问题是,最好的方式是什么?我将如何根据elo排名对团队进行排序,并将其添加到新的Arraylist中

这里有一种方法:

class Scoring{

private ArrayList<Team> teams;



public void addTeams(ArrayList<Team> toAdd){

for(Team t : toAdd){
for(int i = 0; i < teams.size(); i++){
if(teams.get(i).elo<t.elo)break;
}
teams.add(i, t);
}

}

}

另一种方法是创建一个比较器,并使用该比较器对要添加的arraylist进行排序,然后将其添加到团队中。

好吧,为什么不试试看它是如何运行的?这里有很多排序问题,我相信你能找到一些有用的东西,而不需要有人告诉你该做什么。OP询问如何对列表排序,但你没有在回答中提供。此外,您可以使用ListaddAllCollection并删除addTeams方法中的所有代码。是的,所有团队都将以排序方式输入。只要所有团队都输入了排序,那么列表将始终进行排序。您可以使用PriorityQueue代替。至于ListaddAllCollection-addTeams不会这样做--@LuiggiMendoza有趣。为什么呢编辑:您只需将elo分数作为优先级。是的,所以它和我做的非常相似。