Hallo,
ich habe ein Verständnisproblem bei einer Hausaufgabe.
Es gibt einmal die Klasse Spieler die das Interface Comparable<Spieler> implementieren soll und die Spieler nach ihrer id vergleichen soll.
Das habe ich so "gelöst":
Zum Testen habe ich mir ein paar Spieler erstellt und mir die Liste einmal unsortiert und dann mit Collections.sort sortiert, das funktioniert.
Dann soll ich in der Klasse Spielermanager folgendes machen:
public SpieleManager(Collection<Spieler> spieler)
Erzeugt einen SpielerManager, dem die übergebenen Spieler bekannt sind.
Befinden sich in der übergebenen Collection mehrere Spieler mit der gleichen ID oder
dem gleichen Namen oder kennt der SpielerManager bereits Spieler mit der ID oder dem
Namen eines übergebenen Spieler, soll eine java.lang.IllegalArgumentException geworfen werden.
Die übergebene Collection darf (auch bei Aufrufen weiterer Methoden dieser Klasse)
nicht verändert werden.
Ich verstehe nicht wie das mit dem Übergeben der Liste funktionieren soll, kann mir das jemand erklären oder hat eine gutes Beispiel?
Grüße Leonie
ich habe ein Verständnisproblem bei einer Hausaufgabe.
Es gibt einmal die Klasse Spieler die das Interface Comparable<Spieler> implementieren soll und die Spieler nach ihrer id vergleichen soll.
Das habe ich so "gelöst":
Java:
public class Spieler implements Comparable<Spieler>
{
int id;
String name;
public static List<Spieler> spieler = new ArrayList<Spieler>();
@Override
public int compareTo(Spieler other)
{ if (getId() > other.getId())
{ return 1;
} else if (getId() < other.getId())
{ return -1;
} else return 0;
}
public Spieler(int id, String name)
{
if (id < 0 || name.isEmpty())
throw new IllegalArgumentException( "Id negativ oder name leer" );
this.id = id;
this.name = name;
spieler.add( this );
Collections.sort( spieler );
}
Dann soll ich in der Klasse Spielermanager folgendes machen:
public SpieleManager(Collection<Spieler> spieler)
Erzeugt einen SpielerManager, dem die übergebenen Spieler bekannt sind.
Befinden sich in der übergebenen Collection mehrere Spieler mit der gleichen ID oder
dem gleichen Namen oder kennt der SpielerManager bereits Spieler mit der ID oder dem
Namen eines übergebenen Spieler, soll eine java.lang.IllegalArgumentException geworfen werden.
Die übergebene Collection darf (auch bei Aufrufen weiterer Methoden dieser Klasse)
nicht verändert werden.
Ich verstehe nicht wie das mit dem Übergeben der Liste funktionieren soll, kann mir das jemand erklären oder hat eine gutes Beispiel?
Grüße Leonie