Java LinkedList


Java LinkedList

Im vorigen Kapitel haben Sie die ArrayListKlasse kennengelernt. Die LinkedListKlasse ist fast identisch mit der ArrayList:

Beispiel

// Import the LinkedList class
import java.util.LinkedList;

public class Main {
  public static void main(String[] args) {
    LinkedList<String> cars = new LinkedList<String>();
    cars.add("Volvo");
    cars.add("BMW");
    cars.add("Ford");
    cars.add("Mazda");
    System.out.println(cars);
  }
}


ArrayList vs. LinkedList

Die LinkedListKlasse ist eine Sammlung, die viele Objekte desselben Typs enthalten kann, genau wie die ArrayList.

Die LinkedListKlasse hat dieselben Methoden wie die ArrayListKlasse, da beide die ListSchnittstelle implementieren. Das bedeutet, dass Sie Artikel hinzufügen, Artikel ändern, Artikel entfernen und die Liste auf die gleiche Weise löschen können.

Obwohl die ArrayListKlasse und die LinkedListKlasse auf die gleiche Weise verwendet werden können, sind sie jedoch sehr unterschiedlich aufgebaut.

Wie die ArrayList funktioniert

Die ArrayListKlasse enthält ein reguläres Array. Wenn ein Element hinzugefügt wird, wird es in das Array eingefügt. Wenn das Array nicht groß genug ist, wird ein neues, größeres Array erstellt, um das alte zu ersetzen, und das alte wird entfernt.

Wie die LinkedList funktioniert

Der LinkedListspeichert seine Artikel in "Containern". Die Liste hat einen Link zum ersten Container und jeder Container hat einen Link zum nächsten Container in der Liste. Um der Liste ein Element hinzuzufügen, wird das Element in einem neuen Container platziert und dieser Container mit einem der anderen Container in der Liste verknüpft.

Wann zu verwenden

Verwenden Sie eine ArrayListzum Speichern und Zugreifen auf Daten und LinkedList zum Bearbeiten von Daten.


LinkedList-Methoden

In vielen Fällen ist die ArrayListeffizienter, da es üblich ist, Zugriff auf zufällige Elemente in der Liste zu benötigen, aber die LinkedListbietet mehrere Methoden, um bestimmte Operationen effizienter auszuführen:

Method Description Try it
addFirst() Adds an item to the beginning of the list.
addLast() Add an item to the end of the list
removeFirst() Remove an item from the beginning of the list.
removeLast() Remove an item from the end of the list
getFirst() Get the item at the beginning of the list
getLast() Get the item at the end of the list