ExpertiDict

Java · Intermediário · Inglês · Técnico

groupingBy

/ˈɡruːpɪŋ baɪ/substantivo

Coletor que agrupa os elementos de um stream num Map, usando uma função de classificação como chave, com valores em lista ou agregados.

Onde usar

Aparece em relatórios: agrupar vendas por cliente ou contar por status. Combina com counting() e summingInt().

Em código

var p = List.of("sol", "mar", "terra");
var porTam = p.stream().collect(
    Collectors.groupingBy(String::length));
System.out.println(porTam);
// {3=[sol, mar], 5=[terra]}

Exemplos

Group the orders by customer with groupingBy.

Agrupe os pedidos por cliente com groupingBy.

Pass counting() as the downstream collector.

Passe counting() como coletor secundário.

Cuidado

O Map resultante é um HashMap, sem ordem previsível; para ordenar, passe uma fábrica como TreeMap::new.

Veja também

Todos os termos de Java