Java LinkedList
Java LinkedList
V předchozí kapitole jste se dozvěděli o ArrayList
třídě. Třída LinkedList
je téměř totožná s
ArrayList
:
Příklad
// 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
Třída LinkedList
je kolekce, která může obsahovat mnoho objektů stejného typu, stejně jako ArrayList
.
Třída LinkedList
má všechny stejné metody jako ArrayList
třída, protože obě implementují List
rozhraní. To znamená, že stejným způsobem můžete přidávat položky, měnit položky, odebírat položky a mazat seznam.
I když však ArrayList
třídu a LinkedList
třídu lze používat stejným způsobem, jsou sestaveny velmi odlišně.
Jak ArrayList funguje
Třída ArrayList
má uvnitř pravidelné pole. Když je prvek přidán, je umístěn do pole. Pokud pole není dostatečně velké, vytvoří se nové, větší pole, které nahradí staré, a staré se odstraní.
Jak funguje LinkedList
Skladuje LinkedList
své položky v „kontejnerech“. Seznam má odkaz na první kontejner a každý kontejner má odkaz na další kontejner v seznamu. Chcete-li přidat prvek do seznamu, prvek se umístí do nového kontejneru a tento kontejner se propojí s jedním z dalších kontejnerů v seznamu.
Kdy použít
Použijte a ArrayList
pro ukládání a přístup k datům a LinkedList
pro manipulaci s daty.
Metody LinkedList
V mnoha případech ArrayList
je efektivnější, protože je běžné potřebovat přístup k náhodným položkám v seznamu, ale LinkedList
poskytuje několik metod, jak provádět určité operace efektivněji:
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 |