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

🗄️ Capítulo Anterior 📚 Sumário de Tópicos ✨ Próximo Capítulo