Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] O que é um Grouping?

Bom dia a todos

Nesta aula extra, foi ensinada a função groupingBy, que retorna um Grouping, ao invés do groupBy, que retorna Map

val pedidosAgrupados: Grouping<Pedido, Boolean> = pedidos.groupingBy { pedido ->
        pedido.valor > 50.0
    }

Mas eu não entendi exatamente qual seria a diferença de um Grouping com um Map e em qual contexto seria interessante utilizar esse grouping?

2 respostas

Eu li dois artigos sobre Grouping. Um deles fala sobre o eachCount(), que podemos fazer códigos para fazer calculos de contagem de grupos, e esse outro link, que diz que o Grouping é mais simples que o map e exige menos processamento, mas que ele é mais limitado em sua operação.

Mas ainda não ficou muito claro sobre o que ele faz exatamente, e que as outras funções fazem que não tem no maps, e então, por demandar uma necessidade de processamento menor, ele é interessante usar em contagens de dados maior

solução!

Olá Murilo, tudo bem?

O grouping é uma interface que permite agrupar elementos de uma coleção com base em uma determinada propriedade ou chave e, em seguida, realizar operações em cada grupo.

A principal diferença entre o Grouping e o Map é que o Grouping não cria um mapa imediatamente, em vez disso, ele permite iterar sobre os grupos de elementos agrupados sem criar uma nova coleção. O Grouping é uma forma mais eficiente de agrupar elementos, especialmente quando a coleção original é grande e criar um mapa pode ser demorado.

A função groupingBy é usada para criar um objeto Grouping, que pode ser usado para realizar operações em cada grupo de elementos. A partir do objeto Grouping, podemos usar funções como eachCount() para contar a quantidade de elementos em cada grupo, ou filter() para filtrar os grupos com base em alguma condição.

O Grouping é útil em situações em que precisamos agrupar elementos de uma coleção e realizar operações em cada grupo, sem criar um novo mapa ou coleção. Ele é especialmente útil quando lidamos com coleções grandes, pois permite economizar recursos de memória e processamento.