Frage:
Ich soll eine Methode implementieren, welche einen bestimmten Spieler aus der Rangliste unbenennen kann. Falls der Spieler nicht in derRangliste ist, soll nichts passieren. Implementieren Sie für die Klasse Spielerrangliste eine Methode umbenennen.
Der Methodenkopf der gesuchten Methode lautet:public void umbenennen (String pName, String pNeuerName)
ich habe natürlich bereits allein versucht etwas zu Implementiere, doch denke ich, dass dies nicht korrekt ist und würde mich sehr auf eine Korrektur und hilfe freuen;)
(mir kommt mein Lösungsansatz zu einfach vor! Deshalb die Unversicherheit)
ich bitte auch um eine Erklärung, damit ich es nachvollziehen kann.
Unten im Code siehen sie meine Bemühungen.
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;
while (!rangliste.isEmpty()){
rangliste.toFirst();
besterSpieler = rangliste.getContent();
rangliste.next();
while (rangliste.hasAccess()){
aktSpieler = rangliste.getContent();
if (besterSpieler.getHandicap() > aktSpieler.getHandicap()){
besterSpieler = aktSpieler;
}
rangliste.next();
}
neueListe.append(besterSpieler);
rangliste.toFirst();
while(rangliste.getContent() != besterSpieler){
rangliste.next();
}
rangliste.remove();
}
rangliste = neueListe;
}
public void umbenennen (String pName, String pNeuerName){
rangliste.toFirst();
Spieler aktSpieler;
while (rangliste.hasAccess()){
aktSpieler= rangliste.getContent();
aktSpieler.setName(pNeuerName);
return;
}
//anwaerter = temp;
//return ergebnis;
}
}