Especialização em Sistemas com Java 21 LTS • Capítulo 13
🗺️ Mapa Conceitual do Tópico
flowchart TD
A["Coleções Baseadas em Hash O(1)"] --> B["Set: HashSet / TreeSet (Elementos Únicos)"]
A --> C["Map: HashMap / TreeMap (Chave-Valor)"]
A --> D["Generics: <T>, ? extends T, ? super T"]
B & C --> E["Contrato Obrigatório: equals() e hashCode()"]
style A fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style B fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style C fill:#ede7f6,stroke:#7e57c2,stroke-width:2px
style E fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
🗄️ 1. Generics e Coleções Hash
- Generics (
<T>): Proporcionam segurança de tipo em tempo de compilação sem necessidade de casts inseguros.
- Contrato
equals() e hashCode(): Obrigatório para que classes funcionem corretamente como elementos de HashSet ou chaves de HashMap em tempo $O(1)$.
- Wildcards:
<? extends T> (covariância / leitura) e <? super T> (contravariância / escrita) seguindo a regra PECS (Producer Extends, Consumer Super).
💻 Exemplo Prático e Compilável em Java 21
// PilhaGenerica.java - Estrutura de Dados Genérica
package com.empresa.colecoes;
import java.util.ArrayList;
import java.util.List;
public class PilhaGenerica<T> {
private final List<T> elementos = new ArrayList<>();
public void push(T item) { elementos.add(item); }
public T pop() {
if (elementos.isEmpty()) throw new IllegalStateException("Pilha vazia.");
return elementos.remove(elementos.size() - 1);
}
public boolean estaVazia() { return elementos.isEmpty(); }
}
🔗 Recursos Pedagógicos do Capítulo 13
| Recurso Didático |
Finalidade |
Link de Acesso |
| 📊 Slides de Aula |
Apresentação visual interativa com Dark Mode e suporte a teclado |
Ver Slides |
| 🧠 Quiz Formativo |
Teste interativo de fixação com feedback imediato por alternativa |
Fazer Quiz |
| 💻 Exemplos de Código |
Demonstrações funcionais compiláveis com saída no console |
Ver Exemplos |
| 🧩 Exercícios em 4 Níveis |
Lista progressiva de fixação com gabarito em bloco colapsável |
Resolver Exercícios |