0 Daumen
516 Aufrufe

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;
Avatar von

Ich brauche dringend hilfe!!!

BITTE

Wonach soll sortiert werden?
Welche Sortieralgorithmen kennst du?
Darfst du vorgefertige Sortiermethoden benutzen oder Datenstrukturen, die automatisch sortieren?

Also die aufgabe ist einen Algorithmus zur Sortierung von Golfspielern in der Spielerrangliste zu programmieren. Die Schritte sind: 1. Den besten Spieler aus der alten Liste heraussuchen

2. Diesen Spieler in eine neue Liste anfügen.

3. Den Spieler aus der alten Liste löschen. Die Schritte 1 bis 3 wiederholt man bis die alte Liste leer ist.



Ich bedanke mich für die Hilfe:)


Ich brauche dringend Hilfe, bis morgen.


Ich habe es wirklich versucht, doch leider nicht geschafft: (

Ich denke es ist die selectSort Methode oder so

Und an welchem Punkt kommst du nicht weiter und warum?

Ich schaffe es einfach nicht zu programmieren: (

Hast du denn bereits mal auf Papier aufgeschrieben, wie du vorgehen müsstest ?
Einen groben Plan hast du ja bereits gegeben.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community