Interface List em Java: Visão Geral, Implementações e Métodos-Chave
Interface List em Java
Explore a interface List do Java — seu propósito, implementações comuns, métodos essenciais e como difere de Set.
Em Java, a interface List representa coleção ordenada, baseada em índice, que suporta duplicatas e acesso aleatório. Estende Collection e é parte do Collections Framework.
Implementações-Chave de List
Como List é interface, você instancia classes concretas para usar sua funcionalidade:
- ArrayList — backed por array dinâmico, oferece acesso aleatório rápido.
- LinkedList — implementada como lista duplamente ligada, destaca-se em inserções/deleções.
- Vector — lista legada sincronizada, raramente usada em código moderno.
- Stack — subclasse de Vector que segue semântica LIFO.

Estas classes são definidas dentro do pacote java.util.
Usando List no Código
Primeiro importe java.util.List (e a classe concreta que deseja usar).
// Implementação ArrayList List<String> arrayList = new ArrayList<>(); // Implementação LinkedList List<String> linkedList = new LinkedList<>();
As variáveis arrayList e linkedList agora expõem todos métodos List.
Métodos Essenciais de List
Todos métodos listados abaixo são herdados de Collection e disponíveis em toda implementação List.
add(E e)— anexar elemento.addAll(Collection<? extends E> c)— adição em massa.get(int index)— recuperar por índice.iterator()— travessia sequencial.set(int index, E element)— substituir elemento.remove(Object o)— deletar por valor.removeAll(Collection<? extends E> c)— remoção em massa.clear()— esvaziar lista.size()— número de elementos.toArray()— converter para array.contains(Object o)— testar pertinência.
ArrayList na Prática
import java.util.List; import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { List<Integer> numeros = new ArrayList<>(); numeros.add(1); numeros.add(2); numeros.add(3); System.out.println("Lista: " + numeros); int terceiro = numeros.get(2); System.out.println("Elemento Acessado: " + terceiro); int removido = numeros.remove(1); System.out.println("Elemento Removido: " + removido); } }
Saída
Lista: [1, 2, 3] Elemento Acessado: 3 Elemento Removido: 2
Para insight mais profundo em ArrayList, consulte documentação oficial Oracle.
LinkedList na Prática
import java.util.List; import java.util.LinkedList; public class LinkedListDemo { public static void main(String[] args) { List<Integer> numeros = new LinkedList<>(); numeros.add(1); numeros.add(2); numeros.add(3); System.out.println("Lista: " + numeros); int terceiro = numeros.get(2); System.out.println("Elemento Acessado: " + terceiro); int indice = numeros.indexOf(2); System.out.println("Posição de 2 é " + indice); int removido = numeros.remove(1); System.out.println("Elemento Removido: " + removido); } }
Saída
Lista: [1, 2, 3] Elemento Acessado: 3 Posição de 2 é 1 Elemento Removido: 2
Detalhes adicionais sobre LinkedList estão disponíveis nos Java Tutorials.
List vs. Set
Ambas interfaces estendem Collection mas diferem em aspectos chave:
- Lists preservam ordem de inserção e permitem duplicatas.
- Sets forçam unicidade e tipicamente não têm ordem definida (a menos que
SortedSetseja usado).
Escolher entre eles depende se ordem e duplicatas importam para seu caso de uso.
Continue explorando implementações concretas nos próximos tutoriais.
Java
- Dominando Operadores Java: Tipos, Sintaxe e Exemplos Práticos
- Comentários em Java: Tipos, Uso e Boas Práticas
- Dominando o Loop for Aprimorado em Java: Sintaxe, Exemplos e Boas Práticas
- Dominando Strings em Java: Criação, Métodos e Boas Práticas
- Dominando Interfaces em Java: Conceitos, Implementação e Boas Práticas
- Dominando Try-With-Resources em Java: Gerenciamento Automático de Recursos Explicado
- Anotações em Java Explicadas: Tipos, Posicionamento e Exemplos Práticos
- Dominando Algoritmos de Coleção Java: Ordenação, Embaralhamento e Mais
- Dominando Autoboxing e Unboxing em Java: Exemplos Práticos e Boas Práticas
- Gerar Números Aleatórios em Java: Guia Prático com Random e Math.random