🧩 Exercícios: Generics (), Wildcards, Set e Map
Spec Sistemas Com Java • Trilha Progressiva em 4 Níveis
🧭 Navegação Pedagógica
-
📖 Teoria do Capítulo 💻 Exemplos 📊 Slides 🧠 Quiz
🎯 Nível 1: Fundamentos
Problema 13.1 — Classe Genérica com Delimitação de Tipos (Bounded Generics)
Contexto: Classe Genérica com Delimitação de Tipos (Bounded Generics) no contexto de Generics (
Requisitos de Execução:
- Criar classe
CaixaCalculo<T extends Number>que processe operações matemáticas.
Resultado Esperado
Classe genérica operando com restrição de tipos numéricos.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_13_1_SeuNome - Envie na tarefa:
Atividade Cap 13 - Generics (<T>), Wildcards, Set e Map
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
public class CaixaCalculo<T extends Number> {
private T valor;
public CaixaCalculo(T v) { this.valor = v; }
public double aoQuadrado() { return Math.pow(valor.doubleValue(), 2); }
}
🔍 Nível 2: Prática
Problema 13.2 — Conjuntos com HashSet, TreeSet e LinkedHashSet
Contexto: Conjuntos com HashSet, TreeSet e LinkedHashSet no contexto de Generics (
Requisitos de Execução:
- Comparar deduplicação com
HashSet(O(1)), ordenação natural comTreeSete ordem de inserção comLinkedHashSet.
Resultado Esperado
Conjuntos manipulados conforme requisitos de performance e ordenação.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_13_2_SeuNome - Envie na tarefa:
Atividade Cap 13 - Generics (<T>), Wildcards, Set e Map
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
public class SetDemo {
public static void main(String[] args) {
Set<String> ordenados = new TreeSet<>(Set.of("Zebra", "Abelha", "Macaco"));
System.out.println("Ordenacao Natural: " + ordenados);
}
}
⚡ Nível 3: Integração
Problema 13.3 — Tabelas Hash com HashMap e Métodos computeIfAbsent
Contexto: Tabelas Hash com HashMap e Métodos computeIfAbsent no contexto de Generics (
Requisitos de Execução:
- Agrupar itens em mapa utilizando
mapa.computeIfAbsent(chave, k -> new ArrayList<>()).add(item).
Resultado Esperado
Agrupamento fluente via computeIfAbsent sem condicionais manuais.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_13_3_SeuNome - Envie na tarefa:
Atividade Cap 13 - Generics (<T>), Wildcards, Set e Map
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
import java.util.*;
public class MapComputeDemo {
public static void main(String[] args) {
Map<String, List<String>> categorias = new HashMap<>();
categorias.computeIfAbsent("TI", k -> new ArrayList<>()).add("Notebook");
System.out.println("Categorias: " + categorias);
}
}
🏆 Nível 4: Desafio Corporativo
Problema 13.4 — Princípio PECS (Producer Extends, Consumer Super) com Wildcards (? extends / ? super)
Contexto: Princípio PECS (Producer Extends, Consumer Super) com Wildcards (? extends / ? super) no contexto de Generics (
Requisitos de Execução:
- Demonstrar método que leia de
List<? extends Number>(Producer) e grave emList<? super Integer>(Consumer).
Resultado Esperado
Princípio PECS aplicado com máxima flexibilidade de assinaturas genéricas.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_13_4_SeuNome - Envie na tarefa:
Atividade Cap 13 - Generics (<T>), Wildcards, Set e Map
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;
import java.util.List;
public class PecsDemo {
public static double somarLista(List<? extends Number> lista) {
double soma = 0;
for (Number n : lista) soma += n.doubleValue();
return soma;
}
}
| ⬅️ Voltar ao Índice de Exercícios | 📚 Sumário de Tópicos |