У меня есть следующий код, который сортирует мой класс игрока по тому, насколько хорошо они оценены.В моем классе Game
есть ArrayList
из Player
с, которые я пытаюсь отсортировать по их оценкам.Прямо сейчас, это сортирует в обратном порядке (пример после кода).
// Player class
@Override
public int compareTo(Player o) {
return(this.getHowGood() > o.getHowGood() ? -1 :
(this.getHowGood() == o.getHowGood() ? 0 : 1));
}
Класс игры
PlayerSorter playerSorter = new PlayerSorter(allCompetitors);
ArrayList<Player> sortedPlayer = playerSorter.getSortedPlayerByHowGood();
System.out.println("-----Sorted JobCandidate by age: Ascending-----");
for(Player player : sortedPlayer) {
System.out.println(player.getHowGood() + "");
}
Класс PlayerSorter:
import java.util.ArrayList;
import java.util.Collections;
public class PlayerSorter {
ArrayList<Player> players = new ArrayList<>();
public PlayerSorter(ArrayList<Player> player) {
this.players = player;
}
public ArrayList<Player> getSortedPlayerByHowGood() {
Collections.sort(players);
return players;
}
}
Что я получаю в консоли (что находится на моем JFrame):
-----Sorted Player by rating: Ascending /*descending is what I'm looking for here*/-----
8
14
22
33
36
42
44
51
52
54
58
60
60
62
65
73
75
84
93
99
Как я показал выше, цифры растут в том, насколько хорошо, и я пытаюсь сделать противоположное этому, но не могу понять это.Я попытался изменить числа в классе Player
на их противоположные (отрицательные), но это не сработало.Я попытался изменить порядок ArrayList
на Collections.reverse()
, и это не сработало.