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中高分的数字排序_Java_Sorting_Numbers - Fatal编程技术网

java中高分的数字排序

java中高分的数字排序,java,sorting,numbers,Java,Sorting,Numbers,我的比赛有个高分系统。我想能够按顺序对数字进行排序,我有一种方法可以对数字进行排序 public static int[] sort(int[] a){ Arrays.sort(a); return a; } 但是我怎样才能让分数与设定分数的球员的名字保持一致呢? 例如 我:10 你:50 你应该是第一,我应该是第二。如何使字符串在排序时与int保持一致?谢谢最简单的方法是创建一个类来保存此人的姓名和分数。让它实现Comparable接口,在compareTo(…)方法中

我的比赛有个高分系统。我想能够按顺序对数字进行排序,我有一种方法可以对数字进行排序

   public static int[] sort(int[] a){
    Arrays.sort(a);
    return a;
}
但是我怎样才能让分数与设定分数的球员的名字保持一致呢? 例如 我:10 你:50


你应该是第一,我应该是第二。如何使字符串在排序时与int保持一致?谢谢

最简单的方法是创建一个类来保存此人的姓名和分数。让它实现Comparable接口,在
compareTo(…)
方法中,将当前对象
this
的分数与传递给该方法的对象进行比较,然后像您所做的那样对此类对象的数组进行排序

class MyFoo implements Comparable<MyFoo> {
  private String name;
  private int score;

  public MyFoo(String name, int score) {
     // ... etc...
  }

  // getter methods here

  public int compareTo(MyFoo other) {
    return score - other.getScore();
  }

  //.... etc...
}
类MyFoo实现了可比较的{
私有字符串名称;
个人智力得分;
公共MyFoo(字符串名称、整数分数){
//……等等。。。
}
//这里的getter方法
公共int比较(MyFoo其他){
返回分数-other.getScore();
}
//……等等。。。
}

最简单的方法是创建一个类来保存此人的姓名和分数。让它实现Comparable接口,在
compareTo(…)
方法中,将当前对象
this
的分数与传递给该方法的对象进行比较,然后像您所做的那样对此类对象的数组进行排序

class MyFoo implements Comparable<MyFoo> {
  private String name;
  private int score;

  public MyFoo(String name, int score) {
     // ... etc...
  }

  // getter methods here

  public int compareTo(MyFoo other) {
    return score - other.getScore();
  }

  //.... etc...
}
类MyFoo实现了可比较的{
私有字符串名称;
个人智力得分;
公共MyFoo(字符串名称、整数分数){
//……等等。。。
}
//这里的getter方法
公共int比较(MyFoo其他){
返回分数-other.getScore();
}
//……等等。。。
}

创建一个类
Player
,该类包含玩家的名字和分数,以及相应的getter(
getName()
getScore()
),您将能够使用

 Player[] players = ...
 Arrays.sort(players, new Comparator<Player> {
     public int compare(Player p1, Player p2) {
         return Integer.valueOf(p1.getScore()).compareTo(p2.getScore());
     }    
 }
Player[]players=。。。
排序(玩家,新的比较器){
公共整数比较(播放器p1、播放器p2){
返回Integer.valueOf(p1.getScore()).compareTo(p2.getScore());
}    
}

创建一个类
Player
,该类包含玩家的名字和分数,以及相应的getter(
getName()
getScore()
),您将能够使用

 Player[] players = ...
 Arrays.sort(players, new Comparator<Player> {
     public int compare(Player p1, Player p2) {
         return Integer.valueOf(p1.getScore()).compareTo(p2.getScore());
     }    
 }
Player[]players=。。。
排序(玩家,新的比较器){
公共整数比较(播放器p1、播放器p2){
返回Integer.valueOf(p1.getScore()).compareTo(p2.getScore());
}    
}

ok,那么一个可比较对象的arraylist将按照数组的正确顺序进行排序。sort?感谢帮助:DOk,也将感谢快速执行比较返回的方法,我是手动执行的,每种情况下都有一个if:)ok,几乎完成了,只是无法解决如何向score添加新分数[],因为我不能只计算分数。添加,我不知道有多少分数保存在array@JackPatrick:然后使用
ArrayList
(如果你的类被称为Score),因为这个集合是为你的具体情况而创建的--你需要一个灵活大小的类似数组的结构。这就是我所拥有的,但是Arrays.sort(Score)不起作用,因为没有排序(arraylist)好的,那么一个可比较对象的arraylist将按照数组的正确顺序进行排序。排序?感谢帮助:DOk,也将感谢快速进行比较以返回的方法,我是手动进行的,每种情况都有一个if:)好的,差不多明白了,只是不知道如何将新分数添加到分数[],因为我不能只计算分数。添加,我不知道有多少分数保存在array@JackPatrick:然后使用
ArrayList
(如果你的类被称为Score),因为这个集合是为你的具体情况而创建的--你需要一个灵活大小的类似数组的结构。这就是我所拥有的,但是Arrays.sort(Score)不起作用,因为没有排序(arraylist)啊,是的,你的
compare(…)
方法比我的
compareTo(…)
方法更好,因为它处理“边缘”案例更好。+1投票是的,你的
compare(…)
方法比我的
compareTo(…)
方法更好,因为它处理“边缘”案例。+1票