Java-Forum.org  

Zurück   Java-Forum.org > System.gc(); > Hausaufgaben

Hausaufgaben: ArrayList sortieren

Wir machen keine Hausaufgaben, aber wir helfen dabei

Antwort     Ist dieses Thema erledigt?
Themen-Optionen Thema durchsuchen Ansicht
Alt 15.02.2011, 17:35   #1
kpvonnichts
 
ArrayList sortieren - Standard ArrayList sortieren

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:
Java Code: Quelltext in neuem Fenster öffnen
  1. public void sortieren(){
  2.    ArrayList<String> geordneteNotizen;
  3.   int index = 0;
  4.    while(index<anzahlNotizen()){
  5.      index = kleinstenRaussuchen();
  6.      geordneteNotizen.add(notizen.get(index));    }
  7.  }

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 . Kann man das irgendwie besser lösen?
 

 
Anzeige
 

AW: ArrayList sortieren



 
Alt 15.02.2011, 17:39   #2
ARadauer
 
ArrayList sortieren - Standard AW: ArrayList sortieren

Collections.sort

darfst du das verwenden oder willst du selber sortieren?


Das sollte deinen Fehler beseitigen:
ArrayList<String> geordneteNotizen = new ArrayList<String>();
 
Alt 15.02.2011, 17:39   #3
Final_Striker
 
ArrayList sortieren - Standard AW: ArrayList sortieren

Zitat: kpvonnichts
Beitrag anzeigen
Java Editor sagt mir in Zeile 6: "Variable might not have been initialized".
ArrayList<String> geordneteNotizen = new ArrayList<String>();
 
Alt 15.02.2011, 19:18   #4
kpvonnichts
Themenstarter
 
ArrayList sortieren - Standard AW: ArrayList sortieren

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:
Java Code: Quelltext in neuem Fenster öffnen
  1. public void sortieren(){
  2.    ArrayList<String> geordneteNotizen = new ArrayList();
  3.   int index = 0;
  4.    while(index<anzahlNotizen()){
  5.      index = kleinstenRaussuchen();
  6.      geordneteNotizen.add(notizen.get(index));
  7.     }
  8.      int index2 = 0;
  9.      while(index2<anzahlNotizen()){
  10.      notizen.add(geordneteNotizen.get(index2));
  11.      index2 = index2 + 1;
  12.      
  13.  
  14.     }
  15.  }

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.
 
Alt 15.02.2011, 19:58   #5
L-ectron-X
 
ArrayList sortieren - Standard AW: ArrayList sortieren

Welche Fehlermeldungen?
 
Alt 15.02.2011, 20:10   #6
kpvonnichts
Themenstarter
 
ArrayList sortieren - Standard AW: ArrayList sortieren

Diese...
Miniaturansicht angehängter Grafiken
ArrayList sortieren-unbenannt.jpg  
 
Alt 15.02.2011, 22:17   #7
 
ArrayList sortieren - Standard AW: ArrayList sortieren

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.
Java Code: Quelltext in neuem Fenster öffnen
  1. notizen.remove(index);
Ansonsten liefert dir kleinstenRaussuchen() immer die gleiche Notiz

Zeile 8-14 kann man z.B auch so schreiben
Java Code: Quelltext in neuem Fenster öffnen
  1. notizen.addAll(geordneteNotizen);
 
Alt 16.02.2011, 16:50   #8
kpvonnichts
Themenstarter
 
ArrayList sortieren - Standard AW: ArrayList sortieren

Hallo und danke nochmal, die Fehler erscheinen nicht mehr. Nur funktioniert die "sortieren"- Methode immer noch nicht:
Java Code: Quelltext in neuem Fenster öffnen
  1. public void sortieren(){
  2.    ArrayList<String> geordneteNotizen = new ArrayList();
  3.   int index = 0;
  4.    while(index<anzahlNotizen()){
  5.      index = kleinstenRaussuchen();
  6.      geordneteNotizen.add(notizen.get(index));
  7.      notizen.remove(index);
  8.     }
  9.      notizen.addAll(geordneteNotizen);
  10.      
  11.  
  12.     }

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?
 
Alt 16.02.2011, 17:07   #9
ARadauer
 
ArrayList sortieren - Standard AW: ArrayList sortieren

Zitat:
Hat jemand eine Idee, woran das liegen könnte?
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?
 
Alt 16.02.2011, 19:25   #10
kpvonnichts
Themenstarter
 
ArrayList sortieren - Standard AW: ArrayList sortieren

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.
 
Antwort     Ist dieses Thema erledigt?

Zurück   Java-Forum.org > System.gc(); > Hausaufgaben

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Ähnliche Themen: ArrayList sortieren

ArrayList<ArrayList<Integer>> sortieren
ArrayList<ArrayList<Integer>> sortieren: Hallo, ich würde gerne eine Liste A von Listen von Integer sortieren lassen. Die untergeordneten Listen sind sortiert. Jetzt möchte ich erreichen, dass die einzelnen Listen in der obergeordneten...
ArrayList sortieren...
ArrayList sortieren...: Hi liebes Forum, ich sitze hier über einer Aufgabe für die Uni und beschäftige mich gerade mit dem Thema eine ArrayListe nach einem Parameter sortieren zu lassen. Der eine Parameter ist ein...
ArrayList<ArrayList> sortieren - hilfe bei Comperator
ArrayList<ArrayList> sortieren - hilfe bei Comperator: Hallo , ich schreibe gerade an einer ArrayList, welche mit ArrayListen des Typs Integer gefüllt wird. Das ganze sieht in etwa so aus: private ArrayList<ArrayList> list = new...
ArrayList sortieren
ArrayList sortieren: Also ich habe folgendes Problem. Ich habe in einer Arrayliste koordinaten Paare gespeicher, jetzt möchte ich diese im kreis anorden, dazu bestimme ich ganz einfach welches der 2 zu vergleichenden...
ArrayList sortieren
ArrayList sortieren: Hallo, ich erzeuge eine ArrayList mit Dateinamen von einem Verzeichnis: ArrayList matchesPDF = new ArrayList(); try{ path = curSession.GetCurrentDirectory(); find = ".pdf"; File...




Sie betrachten gerade ArrayList sortieren