Stapelspeicher durchsortieren
Hiho!
Ich habe vor kurzem einen Wordlistgenerator geschrieben und bin auf das Problem gestoßen, dass doch viele Wörter doppelt oder dreifach in der Liste vorhanden sind, was ja nicht unbedingt sein muss.
Zur Lösung des Problems habe ich etwas gecodet, was mir diese Liste einmal komplett durchsortiert, und da wir in Informatik vor kurzem den Stapelspeicher oder auch Kellerspeicher durchgenommen haben, wollte ich diesen direkt einmal sinnvoll einsetzen.
Hat auch gut geklappt, nur jetzt erhalte ich einen Fehler der eher mit meinem Array zusammenhängt ( ArrayIndexOutOfBoundsException ), welchen ich mir aber nicht erklären kann oder einfach nur blind bin.^^
Vielleicht sieht ja einer von euch den Fehler und kann mir ein wenig auf die Sprünge helfen.^^
Hier ist der Quellcode:
Zum Verständnis meiner Kellerspeichers:
Ich arbeite mir dem "First in last out"-Prinzip.
pop() = Oberstes Element löschen
top() = Oberstes Element abrufen
push() = Element hinzufügen
empty() = boolsche Abfrage ob noch was auf dem Stack liegt
Ich bedanke mich schonmal im Vorraus für die Hilfe und ich hoffe mein Fehler ist nicht ganz so daneben. Ist heute echt warm und kann mich kaum konzentrieren, würde das aber trotzdem heute gerne fertig kriegen. :D
mfg
Barny
AW: Stapelspeicher durchsortieren
Ich hoffe dir ist aber bewusst, dass es in Java für solche Aufgaben spezialisierte Datentypen wie Mengen (Set) gibt?
Für gewöhnlich ist Laufzeit bei kleinen Programmen ja wohl keine Frage, aber wenn es hier um Wortlisten geht und du da wirklich viele davon hast, die du sortieren willst, dann wird das das mit Sicherheit doch einen bemerkbaren Laufzeitverlust geben.
Wieso also nicht mit Sets? Kurz, schnell, elegant:
Beispiel:
Code:
● ● ● cat wordlist.txt
das
ist
ein
Test
wobei
das
"das"
doppelt
vorkommt
● ● ● javac main.java; java main
das
Test
wobei
ein
vorkommt
"das"
ist
doppelt
AW: Stapelspeicher durchsortieren
Danke für die Antwort, und wenn ich ehrlich bin war mir das bis jetzt nicht bewusst, aber man lernt ja nie aus.^^
Das es evtl. zu Laufzeitverlusten kommen kann bei größeren Wortlisten war mir aber bewusst, und ich denke, dass deine Lösung optimal ist. :)
mfg
Barny
//Edit:
Habe es jetzt so umgesetzt und funktioniert 1a. ;)