Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/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]根据玩家得分对数组进行排序_Java_Arrays_Sorting - Fatal编程技术网

[Java]根据玩家得分对数组进行排序

[Java]根据玩家得分对数组进行排序,java,arrays,sorting,Java,Arrays,Sorting,我需要不断地向数据领域添加新玩家。因此,我想首先将所有人添加到ArrayList,其中对象播放器有两个变量:name和score。然后我想创建一个排名方法,将我的arraylist中的所有玩家放入一个数组,并将他们从最高分数到最低分数排序。我不知道如何排序,但因为这是一个自定义对象,我正在尝试排序。我正在使用的示例是一个由49名玩家组成的数据集 您必须实现Comparable接口,并覆盖compareTo方法,以便进行自定义比较。这里有更多信息:这似乎适用于美国 public static vo

我需要不断地向数据领域添加新玩家。因此,我想首先将所有人添加到ArrayList,其中对象播放器有两个变量:name和score。然后我想创建一个排名方法,将我的arraylist中的所有玩家放入一个数组,并将他们从最高分数到最低分数排序。我不知道如何排序,但因为这是一个自定义对象,我正在尝试排序。我正在使用的示例是一个由49名玩家组成的数据集

您必须实现
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构造函数,它将为您维护顺序