4.2.17 Eine weitere Klasse des Collections Framework ist LinkedList. Erläutern Sie den Unterschied zwischen LinkedList und ArrayList.

Beide Klassen bilden Listen dynamischer Größe ab, die Elemente beliebiger (Klassen-) Typen aufnehmen können. ArrayList kommt dabei einem gewöhnlichen statischen Array am nächsten. Sie erlaubt einen sehr schnellen freien Zugriff auf beliebige Elemente anhand des Index.

LinkedList hingegen ist eine doppelt verkettete Liste, d.h., jedes Element kennt seinen Vorgänger und  Nachfolger in der Liste. Dank dieser Eigenschaft lassen sich sehr leicht Stacks und Queues realisieren. Der Nachteil ist, dass der Zugriff auf ein beliebiges Element anhand des Index im Vergleich zu ArrayList recht langsam ist. Dazu wird nämlich intern die Liste vom Anfang bzw. Ende an zum gesuchten Index durchlaufen. Je nachdem ob der gesuchte Index in der vorderen oder der hinteren Hälfte der Liste liegt, wird dazu entschieden, ob sie vorwärts oder rückwärts durchlaufen wird.