Java Bubblesort Algorithmus funktioniert nicht , was tun?

Programmauschnitt - (PC, programmieren, Java)

3 Antworten

Das Bild ist leider unleserlich. Wäre gut wenn du bisschen ranzoomdn könntest. Außerdem ist es hilfreich wenn du den Fehlercode zeigst.

Den Text in deinem Bild kann man nicht lesen.
Steht auf dem Bildschirm "Methode compareToIgnoreCase funktioniert nicht" oder gibt es eine genauere Fehlerbeschreibung?

genau genommen steht da cannot find symbol- method compareToIgnoreCase(Schueler) kann ich das Bild in der Frage noch verändern? wenn ja wie ich benutze nämlich gutefrage.net noch zum ersten mal

0
 import java.lang.*;
 
public class Klasse{
 Schueler[]schuelerliste;
 Lehrer[]lehrerliste;
 int maxAnzahlSchueler;
 int aktuelleAnzahlSchueler;
 int maxAnzahlLehrer;
 int aktuelleAnzahlLehrer;
 int raum;
 
 public Klasse (int raum,int maxAnzahlSchueler, int aktuelleAnzahlSchueler, int maxAnzahlLehrer, int aktuelleAnzahlLehrer)
{
 this.maxAnzahlSchueler=maxAnzahlSchueler;
 this.maxAnzahlLehrer=maxAnzahlLehrer;
 schuelerliste= new Schueler[maxAnzahlSchueler];
 this.raum=raum;
 lehrerliste=new Lehrer[maxAnzahlLehrer];
}

public void fuegeSchueler (Schueler schueler)
{schuelerliste[aktuelleAnzahlSchueler]= schueler;
    aktuelleAnzahlSchueler++;
}


public void fuegeLehrer (Lehrer lehrer)
{lehrerliste[aktuelleAnzahlLehrer]= lehrer;
    aktuelleAnzahlLehrer++;
}

public static void sortStringBubble( Schueler[] schuelerliste)
      {
            int j;
            boolean flag = true;  // Variable die nur wahr oder falsch sein kann
            String temp;

            while ( flag )
            {
                  flag = false;
                  for ( j = 0;  j < schuelerliste.length - 1;  j++ )
                  {
                          if ( schuelerliste[j].compareToIgnoreCase(schuelerliste[j+1] ) > 0 )
                          {                                             // Abfrage ob die Variable größer ist als die andere
                                      temp = schuelerliste [ j ];
                                      schuelerliste [ j ] = schuelerliste [ j+1];     // Tauschen der Felder
                                      schuelerliste [ j+1] = temp;
                                      flag = true;
                           }
                   }
            }
      } 
}       

hier ist nochmal der eigentliche Programmcode ;D also das, was man auf dem Bild sehen sollte

Die Schülerlistenelemente sind nicht vom Typ String, sondern vom Typ Schüler. Du musst nicht Schülerliste[j] vergleichen, sondern wahrscheinlich so etwas wie Schülerliste[j].Name

1
@Suboptimierer

Vielen vielen Dank das Programm funktioniert jetzt du hast mir echt weitergeholfen ;D

1

BlueJ/Java wie funktioniert das?

Haben in der schule angefangen mit blueJ und der Programmiersprache java zu programmieren. Kann mir jmd dabei helfen Blick nicht wirklich durch also wann verwendet man dieses private und wann dieses public etc

...zur Frage

Wie funktioniert das genau (Bubblesort)?

Guten Abend,

ich lerne gerade den Bubblesort-Algorithmus und verstehe die Schritte leider nicht.

Kann mir jemand von ihnen bitte eine Schritt-für-Schritt-Erklärung geben?

public static int[] bubblesort(int[] zusortieren) {

int temp;

for(int i=1; i<zusortieren.length; i++) {

for(int j=0; j<zusortieren.length-i; j++) {

if(zusortieren[j]>zusortieren[j+1]) {

temp=zusortieren[j];

zusortieren[j]=zusortieren[j+1];

zusortieren[j+1]=temp;

}

}

}

return zusortieren;

}

Danke schonmal :)

...zur Frage

Wie kann man einen Java Code in einen String zurück umformen?

Wie funktioniert es, dass man eine int variable mit einem ascii Code in einem String, also Buchstaben umformen kann?(Java,BlueJ)

...zur Frage

Java BlueJ: switch-case Anweisung Problem

Hallo,

ich wollte bei der switch- case Anweisung in die Klammer hinter case eine Bedingung schreiben, also z.B. : case(<17). Leider funktioniert das nicht, kann man dies auf eine andere weise tun? ich möchte viele Fälle mit bedingungen machen, wobei der Block ausgeführt wird bei der die Bedingung wahr ist.

...zur Frage

CMD Konsole leeren mit Java Methode?

Folgendes Szenario,

Habe eine .java erstellt mit einigen Methoden, dazu noch eine Methode die beim Aufruf die Konsole leert. Da ich eine Menu erstellt habe und der Algorithmus bei erwartender Menü Zahl Eingabe stopt, führ ich nach jeder Aktion vor dem Menuaufruf meine Methode clearScreen() auf, dass ich wieder eine Sauber Ausgabe habe.

Für die normale Java Konsole (BlueJ) reicht folgende Methode aus:

public void clearScreen() { System.out.print('\u000C'); }

Nun möchte ich aber die .java im CMD ausführen und geht bis auf die Methode clearScreen().

Die Konsole leert man im CMD mit der Eingabe "cls". 

Aus meinem Verständnis sollte der folgende Befehl doch "cls" schreiben und Enter drücken, sodass die CMD Konsole geleert wird!?

System.out.println("cls");

"cls" für die Eingabe, 

"...ln" für Enter (denk da ist der Fehler)

jemand ne Lösung?

...zur Frage

Warum kann ich in Java kein neues Objekt vom Typ List<LocalDateTime> erzeugen?

Hallo Community!

Ich habe folgendes Problem: ich möchte in Java eine Methode schreiben, die mir eine List<T> vom Typ LocalDateTime zurück gibt. Wenn ich jedoch meine Variable für die Rückgabe initialisieren will, in dem ich

List<LocalDateTime> result = new List<LocalDateTime>();

verwende, bekomme ich vom Compiler einen Fehler angezeigt. Der Fehler besagt:

Cannot instantiate the type List<LocalDateTime>.

Wenn ich allerdings den Teil nach dem Gleichheitszeichen weglasse, beschwert sich der Compiler beim return (was ja berechtigt ist). Wenn ich dann Eclispe das fixen lasse, schreibt mir die IDE nach dem gleich ein null hin.

Zum Hintergrund: ich habe bereits in der gleichen Klasse mehrere Methoden geschrieben, mit denen ich die Feiertage für ein gegebenes Jahr und ein gegebenes Bundesland Deutschlands ermitteln kann. Die neue Methode, die oben genannt wurde, soll jetzt alles Andere nutzen, um mir eine Liste mit allen Feiertagen für ein (oder auch zwei) Jahr(e) und ein Bundesland zu geben.

Ursprünglich habe ich das Ganze schon mal in C# geschrieben, wo es auch wunderbar funktioniert. Jetzt wollte ich das in Java noch mal machen. Nur leider kann lässt mich Java (oder nur der Compiler; ich weiß es nicht) keine generische Liste von LocalDateTime Objekten erzeugen. Zwar könnte ich das auch über ein Array tun, aber Listen haben de Vorteil, dass z. B. sortieren bereits verbaut ist.

Danke schon mal für eure Hilfe. Falls ihr mehr Infos braucht, lasst es mich wissen. Falls nötig, kann ich auch den Orginalcode aus C# (über Umwege) teilen.

...zur Frage

Was möchtest Du wissen?