Frage:
ich soll die Methode Sortieren implementieren, ich habe schon angefangen(siehe Code), aber ich komme nicht weiter. Bitte mit Erklärung, damit ich es nachvollziehen kann.
Aufgabe:
Implementieren Sie das Sortieren in der Methode public void sortieren()
Code:
public class Spielerrangliste{
private List<Spieler> rangliste;
private Queue<Spieler> anwaerter;
public Spielerrangliste(){
rangliste = new List<>();
anwaerter = new Queue<>();
dummySpielerEinfuegen();
}
public void dummySpielerEinfuegen(){
Spieler s1 = new Spieler("Fuerstin Pueckler",200);
Spieler s2 = new Spieler("General Wolfenstein",250);
Spieler s3 = new Spieler("Prof. Dr. Schlunz",600);
rangliste.append(s1);// Ranglste hängt S1 an
rangliste.append(s2);// ""S2
rangliste.append(s3);//""S3
Spieler s4 = new Spieler("Norbert Neumann", 700);
anwaerter.enqueue(s4);
Spieler s5 = new Spieler("Natascha Nocheine", 750);
anwaerter.enqueue(s5);
}
public void neuerAnwaerter(String pName, int pHandicap){
Spieler neuerSpieler = new Spieler(pName, pHandicap);
anwaerter.enqueue(neuerSpieler);
}
public void zurRanglisteHinzufuegen()
{
if(!anwaerter.isEmpty()){//mind. 1 Anwaerter muss vorhanden sein
Spieler neuerSpieler = anwaerter.front();// zwischengespeichert
anwaerter.dequeue();// anwaerter gelöscht-von Waeteliste entfernt
rangliste.append(neuerSpieler);
}
}
public String listeToString(){
rangliste.toFirst();
String ergebnis = "";
while (rangliste.hasAccess()) {
Spieler aktSpieler = rangliste.getContent();
ergebnis = ergebnis + aktSpieler.getName() + " : " + aktSpieler.getHandicap() + "\n";
rangliste.next();
}
return ergebnis;
}
public String anwaerterToString(){
Queue<Spieler> temp = new Queue<>();//neue Warteliste
String ergebnis="";
while (!anwaerter.isEmpty()) {//nicht leer
Spieler aktSpieler = anwaerter.front();//Zwischengespeichert
temp.enqueue(aktSpieler);//der neuen Liste hinzugefügt
anwaerter.dequeue();//anwaerter gelöscht-entfernt
ergebnis = ergebnis + aktSpieler.getName() + "\n";
}
anwaerter = temp;
return ergebnis;
}
public void spielerEntfernen(String pName){
rangliste.toFirst();
Spieler aktSpieler;
while (rangliste.hasAccess()){
aktSpieler = rangliste.getContent();
if (aktSpieler.getName().equals(pName)){
rangliste.remove();
return;
}
rangliste.next();
}
}
public void handicapAendern(String pSpieler, int pNeuesHandicap){
rangliste.toFirst();
Spieler aktSpieler;
while (rangliste.hasAccess()){
aktSpieler= rangliste.getContent();
aktSpieler.setHandicap(pNeuesHandicap);
return;
}
//anwaerter = temp;
//return ergebnis;
}
public void sortieren(){
List neueListe = new List();
Spieler aktSpieler ;
Spieler besterSpieler;