Also muss ich ein TreeSet von Spieler-Objekten erstellen, die eine höhere Punktzahl als eine bestimmte Punktzahl haben. Ich darf keine for-Schleife verwenden. Ich habe einen Vergleicher geschrieben und eine Liste des Bedarfsobjekts erstellt, aber wenn ich die Liste dem Treeset hinzufüge, bekomme ich einen Player, der nicht in java.lang.Comparable Fehler umgewandelt werden kann.Hinzufügen einer Liste zu einem Baumsatz mit einem Komparator
Hinweis: Alles funktioniert, bis ich versuche, es zum TreeSet hinzuzufügen, wenn ich den TreeSet herausnehme und nur highPlayers drucke, gibt es mir die gewünschte Liste.
Warum kann ich diese Liste nicht zum Treeset hinzufügen? Dank
public class TreeSetProblems2 {
public static void main(String[] args) {
List<Player> players = new ArrayList<>();
Player p1 = new Player("Tom", 3);
Player p2 = new Player("Bucky", 42);
Player p3 = new Player("Tina", 23);
Player p4 = new Player("Bob", 15);
Player p5 = new Player("Shaun", 2);
//Player p6 = new Player("Tommy", 3);
players.add(p1);
players.add(p2);
players.add(p3);
players.add(p4);
players.add(p5);
System.out.print(highRollers(players, 9));
}
public static TreeSet<Player> highRollers(List<Player> players, int score){
TreeSet<Player> treeplayers = new TreeSet<>();
Player dummy = new Player("Dummy", score);
players.add(dummy);
ScoreComparator sc = new ScoreComparator();
Collections.sort(players, sc);
int index = players.indexOf(dummy);
List<Player> highPlayers = players.subList(index+1, players.size());
treeplayers.addAll(highPlayers);
return treeplayers;
}
}
ich dies entdecken, danke für die Antwort –