S
Sebastian G
Hallo,
ich muss mich gerade zum ersten Mal mit groesseren Listen, deren Inhalt sich staendig aendert (hinzufuegen von Objekten am Ende, entfernen von Objekten irgendwo in der Liste).
Wenn ich das auf meiner bisherigen Suche mit Google richtig verstanden habe unterscheiden sich die LinkedList und ArrayList wie folgt:
Taetigkeit LinkedList ArrayList
einfuegen/loeschen O
O
anfuegen/loeschen hinten O(1) O(1)
anfuegen/loeschen vorne O(1) O
Indexzugriff O
O(1)
suchen O
O
Da ich (wie oben beschrieben) hinten einfuegen und irgendwo loeschen will (ersten beiden Punkte meiner obigen Tabelle) und sich LinkedList und ArrayList hier in der Performance nicht unterscheiden, habe ich mich auf Grund des Vorteils der ArrayList beim Indexzugriff fuer die ArrayList entschieden.
Bisher "laufe" ich durch die Liste mit einer normalen for-Schleife [for(int index = 0, ...)].
Nun zu meinen zwei Fragen.
1. Stimmt die oben genannte Tabelle so?
2. Kann man einen Performancegewinn erzielen, wenn man Iterator oder for(Object elem : list) verwendet? Also z.B. die neue for-Schleife in Kombination mit der LinkedList ist schneller als ... (oder so aehnlich).

Habe bisher noch keine Erfahrungen mit Iterator und der neuen for-Schleife. Im Web habe leider nur gefunden, dass das eine besser als das andere ist, aber nicht warum (Performance, Stil, Sicherheit, ...).
Vielen Dank fuer Eure Muehe.
Gruss
Sebastian
ich muss mich gerade zum ersten Mal mit groesseren Listen, deren Inhalt sich staendig aendert (hinzufuegen von Objekten am Ende, entfernen von Objekten irgendwo in der Liste).
Wenn ich das auf meiner bisherigen Suche mit Google richtig verstanden habe unterscheiden sich die LinkedList und ArrayList wie folgt:
Taetigkeit LinkedList ArrayList
einfuegen/loeschen O


anfuegen/loeschen hinten O(1) O(1)
anfuegen/loeschen vorne O(1) O

Indexzugriff O

suchen O


Da ich (wie oben beschrieben) hinten einfuegen und irgendwo loeschen will (ersten beiden Punkte meiner obigen Tabelle) und sich LinkedList und ArrayList hier in der Performance nicht unterscheiden, habe ich mich auf Grund des Vorteils der ArrayList beim Indexzugriff fuer die ArrayList entschieden.
Bisher "laufe" ich durch die Liste mit einer normalen for-Schleife [for(int index = 0, ...)].
Nun zu meinen zwei Fragen.
1. Stimmt die oben genannte Tabelle so?
2. Kann man einen Performancegewinn erzielen, wenn man Iterator oder for(Object elem : list) verwendet? Also z.B. die neue for-Schleife in Kombination mit der LinkedList ist schneller als ... (oder so aehnlich).

Habe bisher noch keine Erfahrungen mit Iterator und der neuen for-Schleife. Im Web habe leider nur gefunden, dass das eine besser als das andere ist, aber nicht warum (Performance, Stil, Sicherheit, ...).
Vielen Dank fuer Eure Muehe.
Gruss
Sebastian