Liste - Datenstrukturen in Java

Liste in Java

Eine Liste (engl. List) ist eine dynamische Datenstruktur, die über Verweise linear verkettet ist.


Erklärung

Eine Liste ist eine dynamische Datenstruktur, in der Daten in einer festen Reihenfolge gespeichert werden und mit Verweisen linear verkettet sind.

Bild einer doppelt verketteten Liste mit vier Knoten, die jeweils auf ihren Vorgänger und Nachfolger zeigen. Der erste (auch Kopf genannt) und letzte Knoten zeigen beide auf NULL.
Doppelt verkettete Liste

Eine Liste muss in Java deklariert werden, damit sie verwendet werden kann.

Deklaration

List ist ein Teil des Packages Java.util und muss importiert werden, damit du sie verwenden kannst.

Dafür kannst du entweder über List hovern (mit der Maus über das Wort gehen) und import class auswählen oder über deine Klasse import java.util.List; schreiben. Es gibt im util-Pakete zwei Arten von Listen. Die LinkedList und die ArrayList. Da sich die beiden Arten nur in ihrer Rechenzeit der verschiedenen Operationen unterscheiden und sie ähnliche Operationen zur Verfügung stellen, kannst du beide verwenden. Die ArrayList basiert dabei auf einem Array und die LinkedList auf einer doppelt verketteten Liste:

Links ist eine doppelt verkettete LinkedList abgebildet, also alle Daten sind mit den nachfolgenden und vorhergehenden Daten mit Pfeilen verbunden. Rechts ist eine ArrayList abgebildet, dort sind an jedem Index Daten eingetragen.

Auch diese müssen mit import java.util.LinkedList; bzw. import java.util.ArrayList; importiert werden.

Du kannst auch direkt das gesamte util-Paket importieren, dafür verwendest du einfach den Befehl import java.util.*;:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Nun muss deine Liste noch deklariert werden:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Dabei wird zuerst der Datentyp angegeben. Es soll sich hier um eine Liste handeln, in der int-Werte gespeichert werden, daher schreibst du List<Integer>. Du kannst nicht int als Datentyp verwenden, da in den util-Paketen keine primitiven Datentypen verwendet werden können. Daher musst du auf Integer zurückgreifen.

Darauf folgt der Name deiner Liste, hier also list.

Hinter einem Gleichzeichen folgt das Keyword new und die Art der Liste, also ArrayList oder LinkedList.

Dahinter folgt noch einmal in spitzen Klammern der Datentyp, der gespeichert werden soll, also wieder Integer.

Darauf folgen runde Klammern und natürlich wie immer ein Semikolon.

Operationen

Dank des util-Pakets, welches du dir importiert hast, stehen dir nicht nur die darin enthaltenen Datenstrukturen, sondern auch ihre Operationen zur Verfügung. Das ist super praktisch, da du dadurch diese nicht selbst implementieren musst!

Die wichtigsten Operationen einer Liste in Java sind dabei:

  • add(element)
  • remove(index)
  • get(index)
  • indexOf(element)
  • contains(element)
  • size()

Auch diese Operationen funktionieren für beide Listen-Arten.

add(element) wird verwendet, um ein neues Element, welches in den runden Klammern übergeben wird, der Liste hinzuzufügen. Wenn du ein Element an eine bestimmte Stelle einfügen möchtest, verwendest du add(index, element).

remove(index) entfernt das Element an dem Index, der in den runden Klammern übergeben wird, aus der Liste. Dabei rücken alle möglichen nachfolgenden Elemente auf, sodass es keine Lücke gibt. Wenn also an Index 3 ein Element gelöscht wird, wird das Element an Index 4 das neue Element an Index 3 und so weiter.

get(index) gibt das Element an dem Index aus, der in den runden Klammern angegeben wurde.

indexOf(element) wird verwendet, um den Index des Elements, welches in den runden Klammern übergeben wird, herauszufinden. Wenn das Element nicht in der Liste enthalten ist, wird -1 ausgegeben.

contains(element) überprüft, ob das Element, welches in den runden Klammern übergeben wird, in der Liste enthalten ist. Wenn es enthalten ist, wird contains() zu true ausgewertet, ansonsten zu false.

size() gibt die Größe der Liste zurück.

Hier ein kleines Code-Beispiel mit allen vorgestellten Operationen an einer LinkedList:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Beispiel

Jan, Nicole und Jeremiah bekommen auf ihrem Camping-Ausflug ganz schön Hunger. Da sie sich nicht viel Essen eingepackt haben, machen sie sich daran, eine Einkaufsliste zu schreiben:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Da fällt Nicole auf, dass sie direkt an einem Fluss campen, daher brauchen sie doch kein Wasser! Der Code wird also um Folgendes ergänzt:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Da die Liste nun doch etwas unübersichtlich ist, haben die Drei vergessen, ob sie schon einen Dosenöffner auf die Liste geschrieben haben, da sie sonst ja nicht die Ravioli-Dosen öffnen können! Daher überprüfen sie mit dem folgenden Befehl, ob "Dosenöffner" schon in der Liste enthalten ist:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Als sie sich diese Zeile auswerten lassen, stellen sie fest, dass sie den Dosenöffner tatsächlich vergessen haben. Daher fügen sie ihn noch schnell hinzu:

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!

Nun können sie sich ihre Einkaufsliste ausgeben lassen und mit ihr zum Einkaufen fahren!

Hier versteckt sich noch mehr!
Besuche die App, um alle Inhalte zu sehen!
Jan, Nicole und Jeremiah mit Einkaufsliste
No items found.

simpleclub ist am besten in der App.

Mit unserer App hast du immer und überall Zugriff auf: Lernvideos, Erklärungen mit interaktiven Animationen, Übungsaufgaben, Karteikarten, individuelle Lernpläne uvm.

Jetzt simpleclub Azubi holen!

Mit simpleclub Azubi bekommst du Vollzugang zur App: Wir bereiten dich in deiner Ausbildung optimal auf deine Prüfungen in der Berufsschule vor. Von Ausbilder*innen empfohlen.

Jetzt simpleclub Azubi holen