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

📁 Capítulo Anterior 📚 Sumário de Tópicos λ Próximo Capítulo