Java/Estruturas de Dados/Estrutura de Dados
Java⏱ ~2 min de leitura

Estrutura de Dados

Pilhas, filas e árvores

Estruturas de dados são formas de organizar e armazenar informações para que possam ser acessadas e modificadas eficientemente. A escolha da estrutura certa pode fazer a diferença entre um algoritmo lento O(n²) e um rápido O(n log n).

As principais estruturas no Java estão no pacote java.util: Array e ArrayList (acesso O(1) por índice), LinkedList (inserção/remoção O(1) nas pontas), HashSet (sem duplicatas, busca O(1)), TreeSet (ordenado, busca O(log n)), HashMap (chave-valor, busca O(1)), Stack (pilha LIFO) e Queue/Deque (fila FIFO).

Para escolher a estrutura certa, pergunte: preciso de ordem de inserção? (List, LinkedHashSet) Preciso de unicidade? (Set) Preciso de acesso por chave? (Map) Preciso de acesso aleatório rápido? (ArrayList) Preciso de inserção eficiente nas pontas? (Deque, LinkedList)

Exemplo.java
import java.util.*;

// ── Array: tamanho fixo, acesso O(1) ─────────────
int[] numeros = {3, 1, 4, 1, 5};
System.out.println(numeros[2]); // 4

// ── Stack/Pilha (LIFO) ───────────────────────────
Deque<String> pilha = new ArrayDeque<>();
pilha.push("primeiro");
pilha.push("segundo");
pilha.push("terceiro");
System.out.println(pilha.pop()); // "terceiro"

// ── Queue/Fila (FIFO) ────────────────────────────
Queue<String> fila = new LinkedList<>();
fila.offer("A");
fila.offer("B");
fila.offer("C");
System.out.println(fila.poll()); // "A"

// ── Escolha baseada no problema ──────────────────
List<String>    lista  = new ArrayList<>();  // ordem, duplicatas
Set<String>     conjunto = new HashSet<>();  // unicidade
Map<String,Integer> mapa = new HashMap<>(); // chave → valor

// Tabela de complexidades:
// ArrayList.get(i)    → O(1)
// LinkedList.add(0,x) → O(1)
// HashSet.contains(x) → O(1)
// TreeSet.contains(x) → O(log n)
💡 Dica pro

Memorize: List para sequência ordenada, Set para unicidade, Map para associação chave→valor. Esses três padrões cobrem 90% dos casos do dia a dia.

Recompensa+40 XP+exercícios