Java Editor ArrayList sortieren

Diskutiere ArrayList sortieren im Hausaufgaben Forum; Hallöle, wir schreiben im Unterricht momentan ein kleines Programm, so etwas wie ein Notizbuch (mit GUI). Bisher kann mein "Notizbuch" Notizen...

  1. kpvonnichts
    kpvonnichts Neues Mitglied
    Hallöle,

    wir schreiben im Unterricht momentan ein kleines Programm, so etwas wie ein Notizbuch (mit GUI). Bisher kann mein "Notizbuch" Notizen hinzufügen, löschen und anzeigen sowie aus allen Notizen diejenige, die alphabetisch am niedrigsten ist, heraussuchen. Nun sollen wir eine Methode schreiben, die alle Notizen alphabetisch sortiert.
    Dazu war mein Grundgedanke folgender: Ich erstelle eine zweite ArrayList, in die ich die Notizen (sortiert) packe und aus der sie dann wieder in die erste kommen. Hier erstmal der Code der Methode:
    Code (Java):
    public void sortieren(){
       ArrayList<String> geordneteNotizen;
      int index = 0;
       while(index<anzahlNotizen()){
         index = kleinstenRaussuchen();
         geordneteNotizen.add(notizen.get(index));    }
     }
    Java Editor sagt mir in Zeile 6: "Variable might not have been initialized".
    Generell habe ich irgendwie das Gefühl, dass der komplette Code für die Mülltonne ist. Habe ihn auch unter Kopfschmerzeinfluss geschrieben :D. Kann man das irgendwie besser lösen?
     
  2. Vielleicht hilft dir das kostenlose Training weiter --> (hier klicken)
  3. ARadauer
    ARadauer Aktives Mitglied
    Collections.sort

    darfst du das verwenden oder willst du selber sortieren?


    Das sollte deinen Fehler beseitigen:
    ArrayList<String> geordneteNotizen = new ArrayList<String>();
     
  4. Final_Striker
    Final_Striker Neues Mitglied
    [c] ArrayList<String> geordneteNotizen = new ArrayList<String>();[/c]
     
  5. kpvonnichts
    kpvonnichts Neues Mitglied
    Ahja sowas hatte ich mir schon gedacht, vielen Dank für die schnellen Antworten :)

    Ich glaube, ich muss selber sortieren.

    Habe jetzt (hoffentlich) das letzte Problem:
    Code (Java):
     public void sortieren(){
       ArrayList<String> geordneteNotizen = new ArrayList();
      int index = 0;
       while(index<anzahlNotizen()){
         index = kleinstenRaussuchen();
         geordneteNotizen.add(notizen.get(index));
        }
         int index2 = 0;
         while(index2<anzahlNotizen()){
         notizen.add(geordneteNotizen.get(index2));
         index2 = index2 + 1;
         

        }
     }
    Das ist jetzt meine Methode, nur scheint die nicht zu funktionieren. Die "Notizen" lassen sich einfach nicht sortieren. Ich bekomme jede Menge Fehler, weiß aber nicht, wo die herkommen.
     
    Zuletzt bearbeitet: 15. Feb. 2011
  6. L-ectron-X
    L-ectron-X Gesperrter Benutzer
    Welche Fehlermeldungen?
     
  7. kpvonnichts
    kpvonnichts Neues Mitglied
    Diese...
     

    Anhänge:

  8. Die Fehlermeldung "kann" daher rühren, das du in einer Endlosschleife immer das kleinste Objekt in deine Arrayliste geordneteNotizen füllst bis der Speicher zur Neige geht.

    Nach Zeile 6 mußt du auch das kleinste Objekt aus deinen Notizen entfernen.
    Code (Java):

    notizen.remove(index);
     
    Ansonsten liefert dir kleinstenRaussuchen() immer die gleiche Notiz

    Zeile 8-14 kann man z.B auch so schreiben
    Code (Java):
    notizen.addAll(geordneteNotizen);
     
  9. kpvonnichts
    kpvonnichts Neues Mitglied
    Hallo und danke nochmal, die Fehler erscheinen nicht mehr. Nur funktioniert die "sortieren"- Methode immer noch nicht:
    Code (Java):
     public void sortieren(){
       ArrayList<String> geordneteNotizen = new ArrayList();
      int index = 0;
       while(index<anzahlNotizen()){
         index = kleinstenRaussuchen();
         geordneteNotizen.add(notizen.get(index));
         notizen.remove(index);
        }
         notizen.addAll(geordneteNotizen);
         

        }
    Die Methode kleinstenRaussuchen() funktioniert (returnet immer den alphabetisch kleinsten Eintrag). Nur wenn ich in der GUI einen Knopp erstelle und den als Auslöser für die Methode "sortieren()" nehme (also book.sortieren() reinschreibe), tut sich nichts. Hat jemand eine Idee, woran das liegen könnte?
     
  10. ARadauer
    ARadauer Aktives Mitglied
    ja klar an deinem code
    zb wie du die methode aufrufst oder kleinstenRaussuchen, kann sein das die sache ewig läuft...
    W
    arum schreibst du dir nicht ein paar System.out.println Meldungen in deinen code das du siehst was passiert?
     
  11. kpvonnichts
    kpvonnichts Neues Mitglied
    kleinstenRaussuchen() funktioniert einwandfrei und läuft nicht ewig, das habe ich ausprobiert. Die Methode aufrufen tue ich, wie gesagt, per Knopp (jButton). Was soll denn in den out.pintlns drinstehen und wo sollen die hin? Ich verstehe nicht ganz, was ich damit erreichen soll.

    Edit: Alles klar, habe grade ein paar System.out.printlns in Schleifen usw. reingeschrieben. Dann habe ich das Programm ausprobiert und es hat tatsächlich alles geklappt. kleinstenRaussuchen() wurde der Anzahl der Notizen entsprechend oft aufgerufen und alles wurde sortiert. Dann habe ich das GUI-Fenster geschlossen und wieder aufgerufen (ich habe absolut nichts am Code verändert), plötzlich hat das nicht mehr geklappt. kleinstenRaussuchen() wurde nur ein mal aufgerufen.
     
    Zuletzt bearbeitet: 16. Feb. 2011
  12. Raum114
    Raum114 Neues Mitglied
    Code (Java):
    while(index<anzahlNotizen()){
         index = kleinstenRaussuchen();
        }
     
    Wenn du 10 Notizen hast und da kommt bei kleinstenRaussuchen() ne 10 zurück im ersten Durchlauf was passiert dann?
     
  13. kpvonnichts
    kpvonnichts Neues Mitglied
    Ah jetzt wird mir alles klar. Was habe ich denn da für einen Mist zusammengschustert :D
     
  14. ARadauer
    ARadauer Aktives Mitglied
    Stimmt... ich denke auch das man das anders schreiben sollte.... was willst du machen? Solange die Anzahl größer 0 ist...
    while(anzahlNotizen()>0){
    fände ich besser
     
  15. kpvonnichts
    kpvonnichts Neues Mitglied
    Jo genau so habe ich das jetzt, es klappt immer noch nicht, aber dann werde ich morgen mal meinen Lehrer fragen. Hilft ja alles nichts.
    Trotzdem danke!
     
  16. Schau dir jetzt hier den Kurs an und lerne Java zu programmieren: --> Hier klicken, um mehr zu erfahren (Klick)
Die Seite wird geladen...

ArrayList sortieren - Ähnliche Themen

ArrayList sortieren
ArrayList sortieren im Forum Allgemeine Java-Themen
ArrayList (Zahlen) aufsteigend sortieren mit Duplikaten
ArrayList (Zahlen) aufsteigend sortieren mit Duplikaten im Forum Java Basics - Anfänger-Themen
ArrayList sortieren
ArrayList sortieren im Forum Java Basics - Anfänger-Themen
ArrayListe sortieren anhand zweier Parameter
ArrayListe sortieren anhand zweier Parameter im Forum Java Basics - Anfänger-Themen
ArrayList sortieren
ArrayList sortieren im Forum Java Basics - Anfänger-Themen
Thema: ArrayList sortieren