[Java]根据玩家得分对数组进行排序
我需要不断地向数据领域添加新玩家。因此,我想首先将所有人添加到ArrayList,其中对象播放器有两个变量:name和score。然后我想创建一个排名方法,将我的arraylist中的所有玩家放入一个数组,并将他们从最高分数到最低分数排序。我不知道如何排序,但因为这是一个自定义对象,我正在尝试排序。我正在使用的示例是一个由49名玩家组成的数据集 您必须实现[Java]根据玩家得分对数组进行排序,java,arrays,sorting,Java,Arrays,Sorting,我需要不断地向数据领域添加新玩家。因此,我想首先将所有人添加到ArrayList,其中对象播放器有两个变量:name和score。然后我想创建一个排名方法,将我的arraylist中的所有玩家放入一个数组,并将他们从最高分数到最低分数排序。我不知道如何排序,但因为这是一个自定义对象,我正在尝试排序。我正在使用的示例是一个由49名玩家组成的数据集 您必须实现Comparable接口,并覆盖compareTo方法,以便进行自定义比较。这里有更多信息:这似乎适用于美国 public static vo
Comparable
接口,并覆盖compareTo
方法,以便进行自定义比较。这里有更多信息:这似乎适用于美国
public static void main(String[] args) {
List<Player> players = new ArrayList<>();
players.add(new Player("L", 98));
players.add(new Player("M", 88));
players.add(new Player("N", 90));
System.out.println("before " + players);
Collections.sort(players, new Comparator<Player>() {
@Override
public int compare(Player o1, Player o2) {
return o1.getScore() > o2.getScore() ? -1 : 1;
}
});
System.out.println("after " + players);
}
static class Player {
private String name;
private double score;
public Player(String name, double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
@Override
public String toString() {
return "{" + name + ", " + score + "}";
}
}
publicstaticvoidmain(字符串[]args){
List players=new ArrayList();
添加(新玩家(“L”,98));
添加(新玩家(“M”,88));
添加(新玩家(“N”,90));
System.out.println(“前”+玩家);
Collections.sort(players,newcomparator(){
@凌驾
公共整数比较(玩家o1,玩家o2){
返回o1.getScore()>o2.getScore()?-1:1;
}
});
System.out.println(“在”+玩家之后);
}
静态类播放器{
私有字符串名称;
私人双积分;
公共播放器(字符串名称,双倍分数){
this.name=名称;
这个分数=分数;
}
公共字符串getName(){
返回名称;
}
公共void集合名(字符串名){
this.name=名称;
}
公众双倍得分(){
返回分数;
}
公开考试分数(双倍){
这个分数=分数;
}
@凌驾
公共字符串toString(){
返回“{name+”,“+score+”}”;
}
}
创建一个自定义的比较器
或实现Compariable
。请添加您迄今为止尝试过的代码。在TreeSet中保留对象,将比较器传递给TreeSet构造函数,它将为您维护顺序