ArrayList, LinkedList oder Set

Status
Nicht offen für weitere Antworten.

redbomber

Bekanntes Mitglied
Hi zusammen, ich habe mal wieder eine Frage:

Momentan versuche ich den passenden Datentyp zu finden, der meinen Anforderungen gerecht wird.

Angenommen mir stehen eine ArrayList<Objekt>, LinkedList<Objekt> oder Set<Objekt> zur Verfügung.
Ich muss immer über die komplette Collection iterieren.
Ebenso muss oft Elemente hinzufügen.
Weiter muss ich oft contains(Objekt) aufrufen.

welche Datentyp ist hier der passende?

Wenn die Methode --> contains(Objekt) oft aufgerufen wird, vermute ich Set<Objekt>
Da ich die Collection oft erweitern muss würde ich sagen LinkedList oder Set
Da ich keinen Index Zugriff benötige ist eine ArrayList nicht unbedingt besser hier oder?
 

Wildcard

Top Contributor
contains wäre bei LinkedList langsam. Wahlfreies einfügen ist bei ArrayList sehr langsam. HashSet wäre wohl das günstigste, aber du hast und nicht verraten, ob du eine Liste, oder eine Menge benötigst.
 

L-ectron-X

Gesperrter Benutzer
Ein Set ist sehr sehr schnell beim Einfügen von Daten
Ich würde jetzt eher zu einem Set tendieren.
 

redbomber

Bekanntes Mitglied
äh wie meinst du das genau mit Liste oder Menge?

Also meine Liste wird zu Beginn schon nach einer gewissen Eigenschaft sortiert und diese Ordnung sollte die Liste beibehalten.

Ich denke dieses Problem habe ich dann sobald ich ein Set verwende...
 

diggaa1984

Top Contributor
hm ists denn ein zeitkritischer Vorgang der alle x Millisekunden Daten manipuliert? Oder ist häufig nur im Sinne von "der nutzer wird diese Art Manipulation am meisten durchführen" .. zB .. ewig viel in Tabellen eintragen und ändern etc. Da ists ja relativ egal welche Datenstruktur rumliegt, da der Nutzer hier die langsamste Einheit darstellt. Und eh der von einer Zellen zur nächsten kommt und was neues einträgt kannst deine Daten zich-mal kopieren, umsortiern, iteriern ^^

Vielleicht könnte hier das Szenario mehr Aufschluss über die korrekte Struktur liefern
 

Wildcard

Top Contributor
äh wie meinst du das genau mit Liste oder Menge?

Also meine Liste wird zu Beginn schon nach einer gewissen Eigenschaft sortiert und diese Ordnung sollte die Liste beibehalten.
Allgemein sind Sets Mengen und Mengen haben keine Ordnung und es gibt jedes Element nur einmal (anders als bei Listen).
Wenn alle Elemente bei dir einzigartig sind, scheidet Set allerdings noch nicht ganz aus. Es gibt da zB noch TreeSet, das sortiert anhand der natural order (Elemente implementieren Comparable), oder anhand eines von dir gesetzten Comparators.
Also die Hauptfrage: sind deine Elemente nur einmal in der Collection?
 

0x7F800000

Top Contributor
Hi zusammen, ich habe mal wieder eine Frage:

Momentan versuche ich den passenden Datentyp zu finden, der meinen Anforderungen gerecht wird.

Angenommen mir stehen eine ArrayList<Objekt>, LinkedList<Objekt> oder Set<Objekt> zur Verfügung.
Ich muss immer über die komplette Collection iterieren.
Ebenso muss oft Elemente hinzufügen.
Weiter muss ich oft contains(Objekt) aufrufen.

welche Datentyp ist hier der passende?

Wenn die Methode --> contains(Objekt) oft aufgerufen wird, vermute ich Set<Objekt>
Da ich die Collection oft erweitern muss würde ich sagen LinkedList oder Set
Da ich keinen Index Zugriff benötige ist eine ArrayList nicht unbedingt besser hier oder?
Über alles iterieren ist überall O(n) denke ich mal.
Insert ist bei ArrayList sterbenslangsam, bei LinkedList & HashSets in konstanter Zeit machbar, bei Bäumen wie ThreeSet etwa in O(ln(n)) machbar, evtl. schneller.
Contains ist bei Listen immer vergleichsweise lahm, linear. Bei HashSet dagegen konstant, bei Bäumen wieder O(ln(n)).
Aber du willst es dauernd im sortierten Zustand halten...
Also kommen eigentlich nur diese Beiden Implementierungen in Frage:
SortedSet (Java Platform SE 6)
Wenn du mehrfach vorkommende elemente drin haben willst, dann musst du einfach auf diesen Strukturen basierende SortedMaps nehmen:
SortedMap (Java Platform SE 6)
Dann nimmst du das eigentlich zu speichernde Objekt als schlüssel, und die Anzahl speicherst du als Wert. (Witzigerweise ist es intern grad andersherum: die sets basieren auf Maps, aber diese Unstimmigkeit kehren wir mal zugunsten von DRY unter den Teppich ;) )
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M ArrayList oder LinkedList Allgemeine Java-Themen 10
H LinkedList<LinkedList<String>> nach ArrayList<ArrayList<String>> ? Allgemeine Java-Themen 9
C LinkedList und ArrayList in HashMap Allgemeine Java-Themen 4
N ArrayList oder LinkedList? Allgemeine Java-Themen 15
F Synchronisation + Vector/ArrayList/LinkedList Allgemeine Java-Themen 7
C Sortieren und Selektieren einer ArrayList<Point3D> Allgemeine Java-Themen 6
A Einzelne Objekte und Unterobjekte einer ArrayList ausgeben Allgemeine Java-Themen 53
T Remove bei ArrayList funktioniert nicht Allgemeine Java-Themen 2
B Type mismatch: cannot convert from Graph.Edge to ArrayList<Graph.Edge> Allgemeine Java-Themen 21
R ArrayList Allgemeine Java-Themen 4
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
J ArrayList, ganze Zeilen löschen oder überspringen Allgemeine Java-Themen 4
L ArrayList sortieren Allgemeine Java-Themen 2
C ArrayList Problem Allgemeine Java-Themen 3
O Datentypen Wie kann ich den Typ einer ArrayList abfragen ? Allgemeine Java-Themen 7
S Best Practices CopyConstrutor mit ArrayList Allgemeine Java-Themen 1
S ArrayList Design Allgemeine Java-Themen 4
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
MiMa Person in einer Arraylist hinzugügen mit Prüfung ? Allgemeine Java-Themen 6
X Adjazenzliste ohne ArrayList Allgemeine Java-Themen 6
X Output von ArrayList Allgemeine Java-Themen 3
H Stream in ArrayList umwandeln Allgemeine Java-Themen 2
H Mehrere Datentypen in einer Arraylist speichern Allgemeine Java-Themen 9
H Arraylist mit anderer ArrayList überschreiben Allgemeine Java-Themen 17
MiMa ArrayList sortieren?? Allgemeine Java-Themen 5
Curtis_MC Pointer mit ArrayList vergleichen Allgemeine Java-Themen 6
F ArrayList`s in Klassen mit Getter/Setter Allgemeine Java-Themen 8
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
F Arraylist vollständig abspeichern und laden Allgemeine Java-Themen 1
R Arraylist in andere Klasse leiten und bearbeiten Allgemeine Java-Themen 10
D ArrayList Indexlänge ändern Allgemeine Java-Themen 2
E Elemente innerhalb einer ArrayList vergleichen Allgemeine Java-Themen 33
K ursprüngliche ArrayList ändert sich bei Übergabe in Methode Allgemeine Java-Themen 18
N Mehrdimensionale ArrayList mischen Allgemeine Java-Themen 10
S JTable - mehrere ausgewählte Rows in ArrayList Allgemeine Java-Themen 5
MiMa Date aus einer ArrayList<Date> holen ?? Allgemeine Java-Themen 5
MiMa ArrayList Rückgabewerte aus einer Funktion Allgemeine Java-Themen 15
L CSV File lesen, in ArrayList speichern und ausgeben Allgemeine Java-Themen 3
M Was geschieht mit Java-Klasse, die aus ArrayList entfernt wird? Allgemeine Java-Themen 10
M Methoden Generische Methode für ArrayList Allgemeine Java-Themen 7
T Collections ArrayList Sortieren Allgemeine Java-Themen 4
P GUI: ArrayList anzeigen funktioniert nicht Allgemeine Java-Themen 5
H ArrayList: Leere Elemente finden? Allgemeine Java-Themen 2
GreenTeaYT Verständnisprobleme zur Arraylist Allgemeine Java-Themen 1
T Methoden Methode zum durchsuchen einer ArrayList Allgemeine Java-Themen 8
K ArrayList sortieren Allgemeine Java-Themen 16
A Bestimmte Inhalte aus ArrayList 1 in ArrayList 2 kopieren Allgemeine Java-Themen 6
S Mehrdimensionales ArrayList ins HashSet Allgemeine Java-Themen 10
C ArrayList Allgemeine Java-Themen 8
Streeber Probleme mit AWT-EventQueue: ArrayList Elemente hinzufügen Allgemeine Java-Themen 1
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
Z NullPointerException beim Schreiben einer ArrayList in eine Datei Allgemeine Java-Themen 6
L Von ArrayList abgeleitete Klasse nur mit bestimmten Objekten füllen Allgemeine Java-Themen 1
K Array in ArrayList Allgemeine Java-Themen 16
Paul15 2D Arraylist in Jtable Allgemeine Java-Themen 1
Paul15 Arraylist 2D Allgemeine Java-Themen 8
B ArrayList in ein Objekt legen Allgemeine Java-Themen 1
Neumi5694 Datentypen ArrayList vs TreeMap Allgemeine Java-Themen 6
F ArrayList Allgemeine Java-Themen 11
X ArrayList will nicht so wie ich will. Hilfe Allgemeine Java-Themen 8
N ArrayList in eigenem Object nicht richtig serialisierbar Allgemeine Java-Themen 14
M ArrayList mit verschiedenen Datentypen in String konvertieren Allgemeine Java-Themen 10
Z Elemente einer ArrayList von rechts wegnehmen Allgemeine Java-Themen 5
W Arraylist Text Suchen und Datei löschen Allgemeine Java-Themen 5
R ArrayList und HashMap Allgemeine Java-Themen 7
T ArrayList zeilenumbruch entfernen Allgemeine Java-Themen 13
D Arraylist/For Schleife/Scanner Allgemeine Java-Themen 30
E ArrayList Anzahl der gleichen Elemente Allgemeine Java-Themen 4
Doopy ArrayList plötzlich leer Allgemeine Java-Themen 2
D Arraylist eigener Klasse an iReport übergeben Allgemeine Java-Themen 7
L ArrayList Inhaltstyp. Allgemeine Java-Themen 5
Z Klassen ArrayList selbst machen Allgemeine Java-Themen 5
J Arraylist speichern und laden? Allgemeine Java-Themen 5
C Generics Objekt in ArrayList Allgemeine Java-Themen 2
D ArrayList index auf gültigkeit prüfen Allgemeine Java-Themen 12
M ArrayList<String> Frage Allgemeine Java-Themen 7
O ArrayList kaputt?! Allgemeine Java-Themen 5
M ArrayList<Foo> in ein Foo[] konvertieren? Allgemeine Java-Themen 8
Bananabert Abstract ArrayList Allgemeine Java-Themen 4
A Collections Array-Elemente in ArrayList kopieren ohne Schleife Allgemeine Java-Themen 7
O ArrayList - Serialisierungs-Problem Allgemeine Java-Themen 11
M JTable + ArrayList Allgemeine Java-Themen 3
M Datentypen ArrayList in Integer konvertieren Allgemeine Java-Themen 3
O Collections ListIterator gibt Inhalt von ArrayList nicht aus Allgemeine Java-Themen 3
Madlip Variablen 3 Werte aus ArrayList und weiter ... Allgemeine Java-Themen 4
S arraylist nach n. Eintrag numerisch Sortiren Allgemeine Java-Themen 5
O Problem beim Auslesen einer Arraylist von JComboBoxen Allgemeine Java-Themen 2
R Threads korrekte Synchronisation bei Vector und ArrayList Allgemeine Java-Themen 6
M Kovariante Rückgabewerte mit ArrayList Allgemeine Java-Themen 3
E NetBeans Vector durch ArrayList ersetzen Allgemeine Java-Themen 4
Maxim6394 Problem mit ArrayList Allgemeine Java-Themen 5
E Berechnung in Arraylist Allgemeine Java-Themen 10
E ArrayList mit unbekannter Größe Allgemeine Java-Themen 8
V Fork Join bei Arraylist Allgemeine Java-Themen 6
H Fehler in Arraylist Allgemeine Java-Themen 2
S Datensätze in eine ArrayList<Movie> speichern Allgemeine Java-Themen 13
S Alle Kombinationen aus ArrayList - Potenzmenge Allgemeine Java-Themen 7
V ArrayList vergleichen mit .equals? Allgemeine Java-Themen 13

Ähnliche Java Themen

Neue Themen


Oben