Die Klasse LinkedList in Java ist ein Teil des Java Collections Framework und implementiert die Schnittstellen List und Deque. Sie ist eine doppelt verkettete Liste, die eine dynamische Datenstruktur zum Speichern von Elementen bietet. Im Gegensatz zu Arrays ermöglicht LinkedList das effiziente Einfügen und Entfernen von Elementen an beiden Enden und in der Mitte der Liste.
Verwendung
LinkedList wird verwendet, wenn häufige Einfügungen und Löschungen erforderlich sind. Sie ist besonders nützlich, wenn die Größe der Liste nicht im Voraus bekannt ist oder wenn Elemente an beiden Enden der Liste hinzugefügt oder entfernt werden müssen.
Type: Der Typ der in der Liste gespeicherten Elemente.
linkedList: Der Name der LinkedList Instanz.
Beispiele
Beispiel 1: Grundlegende Operationen
importjava.util.LinkedList;publicclassLinkedListExample{publicstaticvoidmain(String[] args){LinkedList<String> list =newLinkedList<>();// Adding elements
list.add("Apple");
list.add("Banana");
list.add("Cherry");// Accessing elementsSystem.out.println("First element: "+ list.getFirst());System.out.println("Last element: "+ list.getLast());// Removing elements
list.removeFirst();
list.removeLast();System.out.println("List after removals: "+ list);}}Bereitgestellt von
Dieses Beispiel demonstriert grundlegende Operationen wie das Hinzufügen, Zugreifen und Entfernen von Elementen aus einer LinkedList. Wir fügen der Liste drei Früchte hinzu, greifen auf das erste und das letzte Element zu und entfernen sie dann.
In diesem Beispiel verwenden wir eine Iterator, um die LinkedList von ganzen Zahlen zu durchlaufen. Die Iterator bietet eine Möglichkeit, auf jedes Element der Reihe nach zuzugreifen.
Beispiel 3: LinkedList als Warteschlange verwenden
importjava.util.LinkedList;importjava.util.Queue;publicclassLinkedListAsQueue{publicstaticvoidmain(String[] args){Queue<String> queue =newLinkedList<>();// Enqueue elements
queue.add("First");
queue.add("Second");
queue.add("Third");// Dequeue elementsSystem.out.println("Removed: "+ queue.poll());System.out.println("Queue after removal: "+ queue);}}Bereitgestellt von
Hier wird LinkedList als Queue verwendet. Die Elemente werden mit add() hinzugefügt und mit poll() entfernt, um das FIFO-Verhalten (First-In-First-Out) zu demonstrieren.
Tipps und bewährte Praktiken
Wann zu verwenden: Verwende LinkedList, wenn du häufige Einfügungen und Löschungen benötigst, besonders am Anfang oder Ende der Liste.
Leistungsüberlegungen: LinkedList hat im Vergleich zu ArrayList einen höheren Overhead für den Zugriff auf Elemente nach Index, da der Zugriff sequentiell erfolgt.
Nullelemente: LinkedList erlaubt null Elemente, so dass mögliche NullPointerException Szenarien behandelt werden können.
Thread Safety: LinkedList ist nicht synchronisiert. Verwende Collections.synchronizedList(new LinkedList<>()) für thread-sichere Operationen.
Deque-Operationen: Verwende LinkedList als Deque für doppelendige Warteschlangenoperationen, wie addFirst(), addLast(), removeFirst() und removeLast().
Die Klasse
LinkedListin Java ist ein Teil des Java Collections Framework und implementiert die SchnittstellenListundDeque. Sie ist eine doppelt verkettete Liste, die eine dynamische Datenstruktur zum Speichern von Elementen bietet. Im Gegensatz zu Arrays ermöglichtLinkedListdas effiziente Einfügen und Entfernen von Elementen an beiden Enden und in der Mitte der Liste.Verwendung
LinkedListwird verwendet, wenn häufige Einfügungen und Löschungen erforderlich sind. Sie ist besonders nützlich, wenn die Größe der Liste nicht im Voraus bekannt ist oder wenn Elemente an beiden Enden der Liste hinzugefügt oder entfernt werden müssen.Syntax
Type: Der Typ der in der Liste gespeicherten Elemente.linkedList: Der Name derLinkedListInstanz.Beispiele
Beispiel 1: Grundlegende Operationen
Dieses Beispiel demonstriert grundlegende Operationen wie das Hinzufügen, Zugreifen und Entfernen von Elementen aus einer
LinkedList. Wir fügen der Liste drei Früchte hinzu, greifen auf das erste und das letzte Element zu und entfernen sie dann.Beispiel 2: Iterieren durch eine LinkedList
In diesem Beispiel verwenden wir eine
Iterator, um dieLinkedListvon ganzen Zahlen zu durchlaufen. DieIteratorbietet eine Möglichkeit, auf jedes Element der Reihe nach zuzugreifen.Beispiel 3: LinkedList als Warteschlange verwenden
Hier wird
LinkedListalsQueueverwendet. Die Elemente werden mitadd()hinzugefügt und mitpoll()entfernt, um das FIFO-Verhalten (First-In-First-Out) zu demonstrieren.Tipps und bewährte Praktiken
LinkedList, wenn du häufige Einfügungen und Löschungen benötigst, besonders am Anfang oder Ende der Liste.LinkedListhat im Vergleich zuArrayListeinen höheren Overhead für den Zugriff auf Elemente nach Index, da der Zugriff sequentiell erfolgt.LinkedListerlaubtnullElemente, so dass möglicheNullPointerExceptionSzenarien behandelt werden können.LinkedListist nicht synchronisiert. VerwendeCollections.synchronizedList(new LinkedList<>())für thread-sichere Operationen.LinkedListalsDequefür doppelendige Warteschlangenoperationen, wieaddFirst(),addLast(),removeFirst()undremoveLast().