Połączona lista Java
Połączona lista Java
W poprzednim rozdziale dowiedziałeś się o ArrayList
klasie. Klasa LinkedList
jest 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 LinkedList
jest kolekcją, która może zawierać wiele obiektów tego samego typu, podobnie jak ArrayList
.
Klasa LinkedList
ma wszystkie te same metody co ArrayList
klasa, ponieważ obie implementują List
interfejs. Oznacza to, że w ten sam sposób możesz dodawać pozycje, zmieniać pozycje, usuwać pozycje i czyścić listę.
Jednak chociaż ArrayList
klasa i LinkedList
klasa mogą być używane w ten sam sposób, są one zbudowane bardzo różnie.
Jak działa ArrayList?
Klasa ArrayList
ma 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
LinkedList
Przechowuje 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 ArrayList
do przechowywania i uzyskiwania dostępu do danych oraz LinkedList
do manipulowania danymi.
Metody połączonej listy
W wielu przypadkach metoda ta ArrayList
jest bardziej wydajna, ponieważ często potrzebny jest dostęp do losowych pozycji na liście, ale LinkedList
zapewnia 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 |