codestory

Die Anleitung zu Java LinkedList

  1. LinkedList
  2. Wie speichert LinkedList die Elemente?
  3. Examples (as List)
  4. Example (as Deque)

1. LinkedList

LinkedList ist eine der speziellsten Klassen im Java Collection Framework. Hier sind seine Merkmale:
  • LinkedList kann als List , Deque (Double ended Queue) oder als stack verwendet werden.
  • LinkedList ist nicht synchronisiert (non synchronized).
  • LinkedList ermöglicht doppelte Elemente.
  • LinkedList erlaubt keine Elemente null (die Eigenschaft von einer Queue).
  • LinkedList behält die Reihenfolge des Einfügens von Elementen bei.
public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable
LinkedList constructors
LinkedList()    

LinkedList​(Collection<? extends E> c)
LinkedList methods
void add​(int index, E element)
boolean add​(E e)
boolean addAll​(int index, Collection<? extends E> c)
boolean addAll​(Collection<? extends E> c)
void addFirst​(E e)
void addLast​(E e)
void clear()
Object clone()
boolean contains​(Object o)
Iterator<E> descendingIterator()
E element()
E get​(int index)
E getFirst()
E getLast()
int indexOf​(Object o)
int lastIndexOf​(Object o)
ListIterator<E> listIterator​(int index)
boolean offer​(E e)
boolean offerFirst​(E e)
boolean offerLast​(E e)
E peek()
E peekFirst()
E peekLast()
E poll()
E pollFirst()
E pollLast()
E pop()
void push​(E e)
E remove()
E remove​(int index)
boolean remove​(Object o)
E removeFirst()
boolean removeFirstOccurrence​(Object o)
E removeLast()
boolean removeLastOccurrence​(Object o)
E set​(int index, E element)
int size()
Spliterator<E> spliterator()
Object[] toArray()
<T> T[] toArray​(T[] a)

2. Wie speichert LinkedList die Elemente?

LinkedList verwaltet die Elemente auf besondere Weise und überwindet die Nachteile vom Array. In diesem Teil analysieren wir, wie LinkedList seine Elemente verwaltet.
Jedes Element vom LinkedList wird von einem Objekt Node eingewickelt. Jedes Objekt Node hat die Referenz auf Node davor und eine Referenz auf Node danach. So können wir vom ersten Element zum letzten Element von LinkedList bewegen.
Das Entfernen von Elementen aus LinkedList entspricht dem Entfernen des entsprechenden Node. Dazu aktualiseren die vorherigen und folgenden Node einfache ihre Referenz.
Das Einfügen eines Elements in LinkedList erfolgt ebenfalls auf einfache Weise, wie folgt gezeigt:

3. Examples (as List)

LinkedList kann als List verwendet werden und unterstützt alle in der Interface List angegebenen Methoden, einschließlich optionaler Methoden. Sie können auf die Elemente von LinkedList über Iterator, ListIterator oder Stream zugreifen. Die besten Beispiele für List finden Sie im folgenden Artikel:

4. Example (as Deque)

LinkedList kann auch als Deque (Double ended Queue),oder als stack verwendet werden. Die besten Beispiel für Deque und stack finden Sie in den folgenden Artikel:
Deque (Double ended Queue) wie eine normale Warteschlange, aber Sie können auf das erste und letzte Element zugreifen.
Stack funktioniert nach dem Grundsatz LIFO (Last In First Out) (das zuletzt eingefügte Element wird zuerst abgerufen).