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.