Literatur

Listen

Eine Liste enthält Objekte (genau genommen Referenzen auf Objekte) in einer bestimmten Reihenfolge. Die Größe der Liste ist bei der Erstellung nicht bekannt, sie passt sich dynamisch an.  Ebenso wie es möglich ist, neue Elemente an einer beliebigen Position hinzuzufügen, können bereits bestehende Elemente aus der Liste entfernt werden. Dabei entstehen keine Lücken. Beim Einfügen eines neuen Objektes an einer bestimmten Position rutschen die nachfolgenden Elemente alle um eine Position nach oben und schließen so die Lücke. Beim Löschen ist es umgekehrt: Die auf das zu löschende Objekt folgenden Elemente rutschen beim Entfernen um eine Position nach unten.

Zum besseren Verständnis schauen wir uns das folgende Bild an, welches das Einfügen eines Elementes in eine  Liste darstellt.

Einfügen in eine Liste


Das erste Element der oben dargestellten Liste ist das Objekt mit der Bezeichnung refA. Wir fügen an der Position zwei nun das Objekt mit der Bezeichnung refg ein. Einige werden sich hier vielleicht wieder fragen: "Wieso denn die zweite Stelle? Der Pfeil zeigt doch auf die dritte Stelle!" Bitte beachten Sie auch hier, dass, genauso wie Sie es von den Arrays bereits kennen, eine Liste immer mit der Position bzw. dem Index 0 anfängt. Daher entspricht die dritte Stelle der Liste der Position zwei. In der rechten Seite des Bildes sehen wir dann die Liste nach dem Einfügen der neuen Objektreferenz. Alle Elemente, deren Position mindestens so groß war wie die Position, an der das neue Element eingefügt werden sollte, sind um eine Position nach hinten gerutscht.

Die Basisfunktionalität für Listen wird in Java in der Klasse java.util.AbstractList bereit gestellt. Diese wird von den verschiedenen Listentypen (z.B. Vector, LinkedList), die wir in den nachfolgenden Unterkapiteln vorstellen wollen, geerbt.