ArrayList und LinkedList sind zwei verschiedene Implementierungen des List-Interfaces.
LinkedList implementiert eine Liste durch eine doppelt verkettete Liste (d. h. jedes Element kennt seinen Vorgänger und Nachfolger).
ArrayList implementiert eine List durch ein Array, dessen Größe dynamisch angepasst wird.
Ein Vorteil der LinkedList: Hinzufügen und Entfernen von Elementen in konstanter Zeit durch Iteratoren.
Ein Nachteil der LinkedList: Sequentielles Durchlaufen zum Erreichen eines bestimmten Elements nötig (kein konstanter Lesezugriff).
Ein Vorteil der ArrayList: Konstanter Lesezugriff.
Ein Nachteil der ArrayList: Kein Hinzufügen und Entfernen von Elementen in konstanter Zeit möglich.