Doppelt verknüpfte Liste in Java
In einer verknüpften Liste fungiert jedes Element als separates Objekt mit einem Datenteil und einem Adressteil. Es verwendet keinen ansteckenden Speicherort, um Daten zu speichern. Eine doppelt verknüpfte Liste speichert die Adresse des vorherigen Knotens sowie des nächsten Knotens. Mit zwei Adressknoten kann eine doppelt verkettete Liste in beide Richtungen durchlaufen.
In diesem Tutorial werden verknüpfte Listen in Java behandelt.
In Java ist die Linked List-Klasse ein Teil des Collections-Frameworks von Java, das die Funktionalität der Linked List-Datenstruktur bereitstellt, die als Double Linked List fungiert.
Jedes Element fungiert hier als Knoten, der aus 3 Werten besteht, nämlich Prev
, Next
und Data
an einer einzigen Position. Prev
speichert die Adresse zum vorherigen Element, Next
speichert die Adresse zum nächsten Element und Data
speichert die aktuellen Daten des Knotens.
Beispielsweise,
import java.util.*;
public class ABC {
public static void main(String[] args) {
LinkedList<String> fruits = new LinkedList<>();
fruits.add("apple");
fruits.add("orange");
fruits.add("mango");
System.out.println("LinkedList: " + fruits);
}
}
Ausgabe:
LinkedList: [apple, orange, mango]
Im obigen Beispiel haben wir erfolgreich eine verknüpfte Liste über das Collections-Framework von Java erstellt.
Hier hat der erste Knoten Daten als apple
, der auch den Nullwert als seinen vorherigen und die orangefarbene Adresse als seinen folgenden enthält. In ähnlicher Weise hat das zweite Element mit den Daten ‘orange’ die Adresse von Apple als vorherige und die Adresse von Mango als nächstes.
Immer wenn ein neues Element hinzugefügt wird, werden die Adressen Prev
und Next
intern automatisch aktualisiert.
Die Methode get()
wird verwendet, um auf die Elemente aus der Linked List zuzugreifen, die vom Anfang bis zum Element iteriert. Wir haben auch die Methode listIterator()
, um auf die Komponenten zuzugreifen. Die Funktionen next()
und previous()
können beim Durchlaufen der Liste in beide Richtungen helfen.
Außerdem können wir die Methode set()
verwenden, um die Elemente der verknüpften Liste zu ändern. Die Funktion remove()
kann ein Element löschen.
Einige dieser Funktionen verwenden wir im folgenden Beispiel.
import java.util.*;
public class ABC {
public static void main(String[] args) {
LinkedList<String> fruits = new LinkedList<>();
fruits.add("apple");
fruits.add("orange");
fruits.add("mango");
String str = fruits.listIterator(1).previous();
System.out.println("i like " + str);
}
}
Ausgabe:
i like apple
Im obigen Beispiel haben wir mit der Funktion previous()
auf den Wert vor dem Element an Index 1 zugegriffen.
Wir können unsere Klasse auch mit Daten- und Zeigervariablen erstellen, um eine doppelt verknüpfte Liste in Java zu simulieren.