Java LinkedList


Java LinkedList

No capítulo anterior, você aprendeu sobre a ArrayListclasse. A LinkedListclasse é 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 LinkedListclasse é uma coleção que pode conter muitos objetos do mesmo tipo, assim como o ArrayList.

A LinkedListclasse tem todos os mesmos métodos que a ArrayListclasse porque ambos implementam a Listinterface. Isso significa que você pode adicionar itens, alterar itens, remover itens e limpar a lista da mesma maneira.

No entanto, embora a ArrayListclasse e a LinkedListclasse possam ser usadas da mesma maneira, elas são construídas de maneira muito diferente.

Como o ArrayList funciona

A ArrayListclasse 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 LinkedListloja 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 ArrayListpara 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 LinkedListfornece 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