Tópico 07 - Programação Funcional em Java
reduce e agregações
reduce combina todos os elementos em um único valor (soma, produto, concatenação...):
List<Integer> numeros = List.of(1, 2, 3, 4, 5);
int soma = numeros.stream().reduce(0, (a, b) -> a + b);
Para valores numéricos, existem atalhos prontos:
int total = numeros.stream().mapToInt(n -> n).sum();
double media = numeros.stream().mapToInt(n -> n).average().orElse(0);