Welche Datenstruktur für welche Problemstellung?

Guten Morgen,

ich wollte einfach mal Fragen, für welche Sorte von Problem sich welche Datenstruktur am besten anbietet.

Wenn ich bspw. mit wenigen Elementen arbeite und etwas einfügen oder verändern etc. möchte bietet sich ja eine ArrayList an, dann gibts ja auchnoch so spezielle Sachen wie HashTables oder grundlegende Sachen wie Binärbäume oder bei festen Mengen ein ganz normales Array etc.

Man mag zwar jetzt sagen, das muss jeder selbst rausfinden, aber gibts nicht auch von euch Vorschläge zu bereits in Java enthaltene Lösungen zu bestimmten Mengen an Daten oder gewünschten Funktionen?

Ich hätte da bspw. im Moment das Problem, dass ich eine beliebige Anzahl von jeweils zwei zusammengehörigen Strings speichern möchte. In der Struktur muss ich, da es ziemlich viele "Stringpaare" werden, schnell suchen können, aber es soll auch einfach zu verwalten sein und wird bei jedem Start des Programms aus einer Textdatei eingelesen. Das ganze sieht also quasi aus wie eine Tabelle mit 2 Spalten.

Ich habe schon über den Einsatz von HyperSQL nachgedacht, schrecke aber im Moment aus Zeitmangel für den Erwerb der Kenntnisse noch davor zurück.

Praktischer ist eine Textdatei auch daher, da sie leicht zu editieren ist und so, zentral gelagert, relativ schnell geupdatet werden kann.

MfG DM :)
 

ARadauer

Top Contributor
In der Struktur muss ich, da es ziemlich viele "Stringpaare" werden, schnell suchen können,
Was stellt dieses Stringpaar dar? Ich würde ein Objekt draus machen zb Vorname und Nachname wäre Person; xPos, yPos wäre Punkt.. diese Objekte dann einfach in einer ArrayListe verwalten

Oder sind es einfach Key Value Pars, dann würde ich eine HashMap nehmen. Also was genau steht fachlich hinter den Strings?

und was bedeutete viele? Mit welcher Zahl kannst ungefähr rechnen?
 

Foermchen82

Top Contributor
Was meinst du denn mit "nach string-paaren suchen".

Spontan würde ich jetzt für die Abblidung zwei Array-Lists nehmen in die du jeweils den ersten String bzw den zweiten String des Paares rein packst. Über den Index kannst du dann leicht die Paare zusammen führen. Einfürgen und löschen geht auch gut.

Aber wie gesagt: Ich weiß nicht genau was du meinst.
 

fastjack

Top Contributor
Prinzipiell nimmst Du die Datenstruktur, die am ehestens auf Dein Problem passt. Schau Dir einfach mal die gängigen Java-Datenstrukturen aus der Collections-API an. Ohne deren Bedeutung wirst Du es sehr schwer haben.
 

Marco13

Top Contributor
Im allgemeinen nimmt man die Datensstruktur (bzw. das Interface) das "minimal" in bezug auf die zu erfüllenden Anforderungen ist. Wenn man eine Methode machen will wie
Code:
void printAllElementsOf(...???... something)
{
    for (Object object : something) print(object);
}
dann würde man dort keine ArrayList übergeben, und auch keine List, sondern bestenfalls eine Collection, oder eigentlich sogar nur ein Iterable.

Wenn man schnellen Indizierten Zugriff braucht, nimmt man eine List.
Wenn man schnelle Enthaltenseins-Abfragen braucht, und alle Elemente nur einmal vorkommen, nimmt man ein Set...

Was für deine Stringpaare am besten wäre, hängt davon ab, was du wie (und wie oft) damit machen willst.
 
vielen Dank für den Hinweiß mit den Collections:

Galileo Computing :: Java ist auch eine Insel – 12 Datenstrukturen und Algorithmen
das habe ich dazu gefunden.

Bei den Strings handelt es sich um zusammengehörige Pfade von Dateien und nach einiger Laufzeit, könnten durchaus einige zehntausend entstehen. Das ist in der Informatik natürlich noch nicht viel, aber auf dem Heimcomputer kann das schon mal langsam werden.

Ich denke ich werde dann einen Hashtable oder eine Treemap verwenden. Wobei zweiteres sich beim Suchen auszeichnen soll.

Ich habe zwar im Informatikgrundkurs schon einiges gelernt über Sortier- und Suchverfahren und auch Datenstrukturen, habe aber gehofft, dass es vielleicht gängige, bereits implementierte "Standards" gibt mit denen man bestimmte Probleme einfach lösen kann.

MfG DM
 

slawaweis

Bekanntes Mitglied
man sollte auch wissen, es muss nicht nur eine Datenstruktur geben. Datenstrukturen kann man auch während der Laufzeit ändern oder mutieren lassen. Ich machte es schon seit langem, dass ich für bestimmte Probleme bei selben Daten eine HashMap und eine ArrayList verwende. Natürlich ist da der Aufwand, die Daten in beide Strukturen einzufügen oder zu entfernen. Aber wenn der schnelle oder bequeme Zugriff wichtiger ist, als das Einfügen oder Entfernen, dann ist es von Vorteil.

Slawa
 

Marco13

Top Contributor
Solche Kombinierten Strukturen kann man ggf. auch in einer eigenen Implementierung des Interfaces verstecken. Sofern es (anders als bei List und Map) ein gemeinsames Interface gibt...
 

Marco13

Top Contributor
Beim GANZ groben Überfliegen ist mir aufgefallen, dass dort Interfaces und Implementierungen vermischt sind. Ein Vector ist eine List! Und dass ein Array nicht ins Collections-Framework gehört, erkennt man auch nicht. Für ein wirklich fundiertes Urteil müßte ich es komplett lesen, aber ich habe schon eine Vermutung, wie das Urteil ausfallen würde. Wo die Grenze verläuft, zwischen "bedenklich unpräzise" und "falsch" will ich jetzt aber mal nicht beurteilen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Welche Datenstruktur für Tabelle/DB? Java Basics - Anfänger-Themen 5
F Welche Datenstruktur für Matrix mit Vektoren? Java Basics - Anfänger-Themen 2
E Welche Datenstruktur für Spielbäume? Java Basics - Anfänger-Themen 13
K Welche Datenstruktur für eine Bibliotheksanwendung? Java Basics - Anfänger-Themen 5
FelixN Teilsummenproblem / welche Datenstruktur Java Basics - Anfänger-Themen 2
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
S Welche Datenstruktur ist die optimalste um Funktionen fuer bestimmte Wertebereiche abzurufen..? Java Basics - Anfänger-Themen 5
StupidAttack Gson, welche Datenstruktur? Java Basics - Anfänger-Themen 4
B Finden gemeinsamer Kanten: welche Datenstruktur ? Java Basics - Anfänger-Themen 9
G Welche Datenstruktur ( Sets / Maps)? Java Basics - Anfänger-Themen 10
U Welche Datenstruktur soll ich nehmen? Java Basics - Anfänger-Themen 11
G Welche Datenstruktur ist hier die sinnvolste Java Basics - Anfänger-Themen 6
E welche Datenstruktur (Collection) Java Basics - Anfänger-Themen 4
6 Welche Datenstruktur? Java Basics - Anfänger-Themen 3
P Welche Datenstruktur um schnell zu suchen? Java Basics - Anfänger-Themen 25
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Habe zwei exceptions, welche ist ein Kommunikationsfehler und welche ein Ausgabefehler? Java Basics - Anfänger-Themen 4
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
Q SMS basierte Applikationen, welche Programmiersprache? Java Basics - Anfänger-Themen 8
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
D Welche GUI Library für eine Client Server Chat App Java Basics - Anfänger-Themen 14
H Welche Werte bei Objekterzeugung eingeben? Java Basics - Anfänger-Themen 2
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
W Welche Komponente ist geeignet? Java Basics - Anfänger-Themen 1
A Welche Operation ist das? Java Basics - Anfänger-Themen 2
J Welche Java-Version installieren Java Basics - Anfänger-Themen 9
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
K GUI Entwicklung - Welche Richtung passt für euch zum mobilen Zeitalter? Java Basics - Anfänger-Themen 4
T Datenbank | Welche am Sinnvollsten? Java Basics - Anfänger-Themen 5
S Welche Verteilung? Java Basics - Anfänger-Themen 1
L Welche Methode? Java Basics - Anfänger-Themen 7
O Methoden welche ich implementier Java Basics - Anfänger-Themen 11
A Wie erkennt die JVM welche class verwendet werden muss? Java Basics - Anfänger-Themen 3
M JDK installieren Welche Software bei XP? Java Basics - Anfänger-Themen 5
H Welche IDE zum Buch "Programmieren mit Java" von Reinhard Schiedermeier des Verlags Pearson Studium Java Basics - Anfänger-Themen 19
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
E jProgressbar, 6 Versuche, welche value angeben ? Java Basics - Anfänger-Themen 3
M Welche Entwicklungsumgebung? Java Basics - Anfänger-Themen 32
I Welche Schleife/Bedingung nehme ich her Java Basics - Anfänger-Themen 5
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
K Erste Schritte Java lernen - Welche Bücher? Java Basics - Anfänger-Themen 1
P welche Komponente ist im Layout? Java Basics - Anfänger-Themen 2
TheMenox Methoden Bestimmung an welche Methode eine andere Methode ihren Wert weitergeben soll Java Basics - Anfänger-Themen 35
K Methoden mit den Namen accept. Welche Funktion haben diese? Java Basics - Anfänger-Themen 2
G Lambda Ausdruck: Welche Methode ist die Richtige? Java Basics - Anfänger-Themen 1
J Welche Methoden laufen im neuen thread ?? Java Basics - Anfänger-Themen 9
G Welche Java-Version auf meinem Rechner? Java Basics - Anfänger-Themen 2
Z Methoden Zugriff mit Klasse 3 auf Methode von Klasse 2 welche in Klasse 1 erzeugt wird Java Basics - Anfänger-Themen 6
A Klassen welche Klassen importiert Eclipse automatisch Java Basics - Anfänger-Themen 2
V welche Methode am besten sich für JPG einfügung in Java anzugewöhnen ? Java Basics - Anfänger-Themen 4
M Welche externen Bibliotheken sind in Java sehr zu empfehlen? Java Basics - Anfänger-Themen 4
I Grafische Benutzeroberflächen - welche Komponente nehme ich am besten? Java Basics - Anfänger-Themen 13
G Welche JAVA IDE? Java Basics - Anfänger-Themen 3
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
E wann welche Konstanten verwenden? Java Basics - Anfänger-Themen 7
K Welche Java Version ist die richtige Java Basics - Anfänger-Themen 3
V Welche Exceptions müssen importiert werden? Java Basics - Anfänger-Themen 3
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
C Datenbank - Welche Java Basics - Anfänger-Themen 5
S Welche Art von Liste? Java Basics - Anfänger-Themen 3
S Eigene Exception Schreiben und Welche Auslösen wie ? Java Basics - Anfänger-Themen 7
A Wenn genau welche Liste verwenden? Java Basics - Anfänger-Themen 6
T Welche Schleife? Java Basics - Anfänger-Themen 6
P Java Stream, wann welche Stream verwenden? Java Basics - Anfänger-Themen 3
S Collections Welche Collection ist am geeignetsten? Java Basics - Anfänger-Themen 3
S Input/Output Welche Möglichkeiten Eingabe von User abfragen Java Basics - Anfänger-Themen 5
P Swing - Welche Klasse für ausgeben von Ergebnissen? Java Basics - Anfänger-Themen 3
R Welche Datenstruktor für diese Liste? Java Basics - Anfänger-Themen 6
B Erste Schritte Welche Kenntnisse brauche ich für diese Programmidee? Java Basics - Anfänger-Themen 4
P Vererbung herausfinden welche Klasse was erbt Java Basics - Anfänger-Themen 3
K welche art von Liste für TableModell Java Basics - Anfänger-Themen 2
D Welche API für komplexe XML-Struktur? Java Basics - Anfänger-Themen 25
S welche Programmstruktur? Java Basics - Anfänger-Themen 8
M Welche Datenbank? Java Basics - Anfänger-Themen 5
B Welche Themengebiete benötige ich? Java Basics - Anfänger-Themen 7
S Welche Collection kann sich selber sortieren? Java Basics - Anfänger-Themen 8
H Welche Art der Ein/Ausgabe Java Basics - Anfänger-Themen 2
U Welche(s) Framework(s) wären geeignet? Java Basics - Anfänger-Themen 8
StrikeTom Welche Dateitypen unterstützt JMF (Java Media Framework)? Java Basics - Anfänger-Themen 6
S Welche Collection? Java Basics - Anfänger-Themen 5
A Welche UML Software benutzt ihr / ist empfehlenswert? Java Basics - Anfänger-Themen 2
N Welche Datenstukturen und Methoden Java Basics - Anfänger-Themen 3
L Auswahl auf welche Art gespeichert werden soll Java Basics - Anfänger-Themen 6
B Welche Java-Installation ist aktiv? Java Basics - Anfänger-Themen 2
S Welche möglichkeiten gibt es eine Zahl zu spiegeln? Java Basics - Anfänger-Themen 17
U Welche Seite für Anfänger Java Basics - Anfänger-Themen 11
K Welche Entwicklungsumgebung für Einsteiger? Java Basics - Anfänger-Themen 16
S Webapplikation welche alternative zu gwt? Java Basics - Anfänger-Themen 2
cowabunga1984 Unit-Testing - Welche Testfälle sind relevant? Java Basics - Anfänger-Themen 4
S Welche Methode in JFrame überschreiben? Java Basics - Anfänger-Themen 12
H Designfrage: Welche Liste? Java Basics - Anfänger-Themen 3
Z Welche IO-Klasse verwenden? Java Basics - Anfänger-Themen 2
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
G Herausfinden, welche Componente als LETZTES focus hatte Java Basics - Anfänger-Themen 2
H Welche PDF Biblothek? Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben