dedlfix: suche optimale Datenstruktur

Beitrag lesen

Tach!

Bisher wollte ich das einfach über einen Root DataNode und entsprechende nachfolge DataNodes speichern. Hierbei habe ich u.a. ArrayList, linkedlist und Stack ausprobiert - kann es sein dass Stacks eine sehr lange laufzeit haben im vergleich zu arraylist? (beim einfügen)

Es bringt nicht viel (außer Erfahrung, wie es nicht geht), wild alle angebotenen Datenstrukturen auszuprobieren. Diese sind nicht per se austauschbar. Jede hat ihre speziellen Eingenschaften und Anwendungsgebiete. Mach dich doch erst einmal damit bekannt. Ein Stack ist ein Last-in-first-out-Speicher. Er ist für das zwischenzeitliche Ablegen von Werten gedacht. Prominentes Beispiel ist ein Programm mit Unterfunktionsaufrufen. Der Prozessor muss sich die Rücksprungadressen merken. Je tiefer in Subroutines abgestiegen wird, desto mehr Adressen lagern sich auf dem Stack ab. Bei jedem Beenden und Rücksprung wird wieder eine Adresse vom Stack entfernt. Vielleicht kann man auch über eienn Stack iterieren, oder Tonnen von Daten darauf ablegen, aber das ist nicht seine Aufgabe.

Habt ihr einen Hinweis, wie ich diese Datenstruktur verbessern köbnnte?

Viellleicht hilft es dir, dir in der realen Welt vorzustellen, wie du das Problem der Verwaltung von Dingen lösen müsstest. Allerdings darfst du dabei nicht zu klein denken. Ein Raum von Zimmergröße zum Ablegen von Zeug ist sicher recht einfach zu überblicken. Der Computer hat aber quasi den Platz einer Großstadt (unbebaut, zunächst). Da brauchst du dann doch schon eine Verwaltung um die Dinge wiederzufinden oder was immer du mit ihnen machen willst. Das sind deine Strukturen. Wenn die Dinge klein sind, werden sie direkt in der Struktur verwaltet (per value). Sind sie zu groß, kann nur eine Referenz abgelegt werden. Dann braucht es auch noch ein Platz-Management für die eigentlichen Dinge. Einiges macht Java im Hintergrund, aber es muss es tun und braucht dafür Zeit und Platz. Ist zum Beispiel deine Verwaltungsstruktur (von vorn herein) zu klein (angelegt), muss sie (immer wieder) vergrößert werden. Dabei muss man mit ihr auch mal an einen freien Platz umziehen. Wobei die eigentlichen Dinge dort bleiben, wo sie sind, es werden ja nur die Referenzen zu ihnen umgezogen. Wie auch immer, deine Strukturen sind jedenfalls ziemliche Spezialisten. Man kann sie mit artfremden Aufgaben betrauen, aber damit sind sie nicht glücklich und auch ziemlich ineffizient.

tl;dr: Informier dich über die Eigenschaften der Verwaltungsstrukturen und wie (in)effizient deine geplanten Zugriffe damit realisiert werden können.

dedlfix.