Połączona lista Java


Połączona lista Java

W poprzednim rozdziale dowiedziałeś się o ArrayListklasie. Klasa LinkedListjest prawie identyczna z ArrayList:

Przykład

// 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 a LinkedList

Klasa LinkedListjest kolekcją, która może zawierać wiele obiektów tego samego typu, podobnie jak ArrayList.

Klasa LinkedListma wszystkie te same metody co ArrayListklasa, ponieważ obie implementują Listinterfejs. Oznacza to, że w ten sam sposób możesz dodawać pozycje, zmieniać pozycje, usuwać pozycje i czyścić listę.

Jednak chociaż ArrayListklasa i LinkedListklasa mogą być używane w ten sam sposób, są one zbudowane bardzo różnie.

Jak działa ArrayList?

Klasa ArrayListma w sobie zwykłą tablicę. Dodany element jest umieszczany w tablicy. Jeśli tablica nie jest wystarczająco duża, tworzona jest nowa, większa tablica w celu zastąpienia starej, a stara jest usuwana.

Jak działa LinkedList

LinkedListPrzechowuje swoje przedmioty w „pojemnikach” . Lista zawiera link do pierwszego kontenera, a każdy kontener ma link do następnego kontenera na liście. Aby dodać element do listy, element jest umieszczany w nowym kontenerze i ten kontener jest połączony z jednym z pozostałych kontenerów na liście.

Kiedy użyć

Użyj ArrayListdo przechowywania i uzyskiwania dostępu do danych oraz LinkedList do manipulowania danymi.


Metody połączonej listy

W wielu przypadkach metoda ta ArrayListjest bardziej wydajna, ponieważ często potrzebny jest dostęp do losowych pozycji na liście, ale LinkedListzapewnia kilka metod umożliwiających wydajniejsze wykonywanie niektórych operacji:

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