4.2.19 Angenommen, Sie sollen einen Teil eines Warenwirtschaftssystems programmieren. Die fragliche Software ist dafür zuständig, Wareneingangsdaten zu verarbeiten. Aus einem von einem Kollegen entwickelten Programmteil bekommen Sie eine (sehr große) Liste mit Objekten übergeben, von denen jedes einen bestimmten Artikel einer eingehenden Lieferung darstellt. Jedes Objekt muss von Ihrer Software in einem komplexen Vorgang in die Lagerverwaltung übernommen werden. Es gilt also, die gesamte Liste von vorne nach hinten abzuarbeiten, was eine ganze Weile dauern kann. Der andere Kollege möchte nun von Ihnen wissen, von welcher Klasse des Collections Frameworks die zu übergebene Liste sein soll:
ArrayList oder LinkedList ?

In diesem Fall wäre LinkedList die bessere Wahl, weil die Datensammlung von vorne nach hinten durchlaufen werden soll. Ein freier Zugriff auf die Elemente ist nicht nötig. Außerdem wissen Sie, dass die Liste sehr groß sein kann und die Verarbeitung recht lange dauert. Es macht also Sinn, jedes verarbeitete Element sofort zu löschen, um wieder Speicherplatz frei zu machen.

Genau das ist mit LinkedList leicht zu erledigen: Mit der Methode getFirst( ) holen Sie sich immer ein Element, das Sie anschließend mit removeFirst ( ) aus der immer kleiner werdenden List entfernen. So brauchen Sie sich nicht um Schleifenzähler und Indizes zu kümmern und schonen den Speicher des Rechners.