Сортировка чисел для рекордов в Java - PullRequest
1 голос
/ 04 февраля 2012

У меня есть система рекордов для моей игры. и я хочу иметь возможность сортировать числа в порядке убывания, у меня есть способ сортировки чисел

   public static int[] sort(int[] a){
    Arrays.sort(a);
    return a;
}

но как мне сделать так, чтобы результаты оставались с именем игрока, который его установил? например я: 10 Вы: 50

Вы должны быть номером 1, а я должен быть номером 2. Как мне сделать так, чтобы строка оставалась с int при сортировке? спасибо

Ответы [ 2 ]

4 голосов
/ 04 февраля 2012

Самый простой - создать класс, в котором будут храниться имя и оценка человека. Заставьте его реализовать интерфейс 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...
}
2 голосов
/ 04 февраля 2012

Создайте класс Player, который содержит как имя игрока и его счет, так и соответствующие получатели (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());
     }    
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...