Datenstrukturen

Status
Nicht offen für weitere Antworten.

SchachFritz

Aktives Mitglied
Guten Tag.
Ich bin absoluter Java Anfänger und versuche soviel wie möglich durch Praxis zu erlernen. Daher hoffe ich, dass diese Forum mit bei verschiedenen Projekten weiterhelfen kann.
Daher komme ich bereits mit einem Problem zu euch und zwar bin ich etwas überwältigt von der Vielzahl an Datenstrukturen die Java anbietet ( z.B. ArrayList, Vector, Hashtable . Map usw. ).

Bei meinem ersten Projekt handelt es sich um eine Art Taskmanager. Es müssen vom User folgendes eingegeben werden können :
- Name , Beschreibung , Kategorie , Verantwortlicher ( müsstem alles Strings sein )
- Start , Ende ( hierbei handelt es sich um ein Datum)

Was das Datum angeht habe ich mich entschlossen java.util.Date zu benutzen. Mit Hilfe des JSpinnerDateModel dürfte es da ja keine Probleme für eine adequate Maske geben.

Allerdings weiss ich nicht so recht wie ich dies nun speichern soll. In einem Array. Vector , einer Hashtable ?
Die Daten werden dann später in einem JTable ausgelesen. Ausserdem sollte es möglich sein die Daten nach Kategorie zu sortieren.

Wie Ihr seht, bin ich etwas überfordert. Ich wäre daher froh wenn Ihr mit die Vorteile der verschiedenen Datenstrukturen auflisten könntet und mir vielleicht ein paar Tipps zu meinem Projekt geben könntet.


Danke im Voraus.
 

mic_checker

Top Contributor
Schreib dir ne klasse, in der du Name,Beschreibung etc. speichern kannst - diese Klasse kann Comparable implementieren , so dass du nach Kategorie (oder wonach du sortieren willst) sortieren kannst.

Dann kannst du Objekte dieser Klasse in einer ArrayList speichern. ArrayList ist im Generellen Vector vorzuziehen, lediglich wenn mehrere Threads darauf zugreifen solltest du zu Vector greifen.
 

SchachFritz

Aktives Mitglied
Danke. Aber worin liegt denn der Hauptunterschied zwischen ArrayList und Vector?

Was ist denn am einfachsten zu Handhaben, wenn man später ein jTable benutzen will ?
 

mic_checker

Top Contributor
SchachFritz hat gesagt.:
Danke. Aber worin liegt denn der Hauptunterschied zwischen ArrayList und Vector?

Was ist denn am einfachsten zu Handhaben, wenn man später ein jTable benutzen will ?

Steht ja schon oben...siehe z.B. Sources:

Code:
    public synchronized boolean isEmpty() {
	return elementCount == 0;
    }
...
public synchronized Object firstElement() {
...
}
...

Ein Großteil der Methoden ist synchronized, doch längst nicht in allen Fällen brauchst du das. ArrayList ist performanter und leicht in der Anwendung. Je nach Anwendungsgebiet musst du dich zwischen ArrayList und LinkedList entscheidet, du hast in einer ArrayList z.B. wahlfreien Zugriff auf die Elemente mit dem Vorteil gegenüber Arrays das die Liste "dynamisch" wachsen kann.

In der Regel solltest du auf ArrayList und nicht Vector zurückgreifen. Siehe auch:

However, if you are using the new framework, you should use ArrayList, instead.
http://java.sun.com/developer/onlineTraining/collections/Collection.html#VectorAndStackClasses
 

Wildcard

Top Contributor
Man synchronisiert Methoden um Probleme mit Multithreading zu vermeiden.
So kann nur ein Thread gleichzeit bestimmten Code ausführen. Etwas langsamer, aber dafür eben Threadsicher
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben