Especialização em Sistemas com Java 21 LTS • Capítulo 14
🗺️ Mapa Conceitual do Tópico
flowchart LR
A["Coleção de Dados (List<Pedido>)"] -->|"stream()"| B["filter(p -> p.isPago())"]
B -->|"map(Pedido::getValor)"| C["Operação Intermediária"]
C -->|"reduce(0.0, Double::sum)"| D["Operação Terminal: Redução"]
style A fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style B fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style D fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
λ 1. Programação Funcional e Stream API
- Interfaces Funcionais:
@FunctionalInterface contendo exatamente um método abstrato (Predicate<T>, Function<T,R>, Consumer<T>).
- Expressões Lambda & Method References: Sintaxe concisa
p -> p.getValor() ou Pedido::getValor.
- Stream API: Pipeline declarativo composto por operações intermediárias (lazy) e terminais (eager).
💻 Exemplo Prático e Compilável em Java 21
// PipelineFuncional.java - Stream API com Filter, Map e Reduce
package com.empresa.funcional;
import java.util.List;
public class PipelineFuncional {
public record ItemVenda(String nome, double preco, boolean ativo) {}
public static double calcularFaturamentoAtivo(List<ItemVenda> itens) {
return itens.stream()
.filter(ItemVenda::ativo)
.mapToDouble(ItemVenda::preco)
.sum();
}
}
🔗 Recursos Pedagógicos do Capítulo 14
| 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 |