Java LinkedList
Java LinkedList
No capítulo anterior, você aprendeu sobre a ArrayList
classe. A LinkedList
classe é quase idêntica à
ArrayList
:
Exemplo
// 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
A LinkedList
classe é uma coleção que pode conter muitos objetos do mesmo tipo, assim como o ArrayList
.
A LinkedList
classe tem todos os mesmos métodos que a ArrayList
classe porque ambos implementam a List
interface. Isso significa que você pode adicionar itens, alterar itens, remover itens e limpar a lista da mesma maneira.
No entanto, embora a ArrayList
classe e a LinkedList
classe possam ser usadas da mesma maneira, elas são construídas de maneira muito diferente.
Como o ArrayList funciona
A ArrayList
classe tem um array regular dentro dela. Quando um elemento é adicionado, ele é colocado no array. Se a matriz não for grande o suficiente, uma nova matriz maior é criada para substituir a antiga e a antiga é removida.
Como funciona a LinkedList
A LinkedList
loja armazena seus itens em "contêineres". A lista tem um link para o primeiro contêiner e cada contêiner tem um link para o próximo contêiner na lista. Para adicionar um elemento à lista, o elemento é colocado em um novo contêiner e esse contêiner é vinculado a um dos outros contêineres da lista.
Quando usar
Use um ArrayList
para armazenar e acessar dados e LinkedList
para manipular dados.
Métodos LinkedList
Para muitos casos, o ArrayList
é mais eficiente, pois é comum precisar de acesso a itens aleatórios na lista, mas LinkedList
fornece vários métodos para realizar determinadas operações com mais eficiência:
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 |