1
resposta

Faça como eu fiz: inclua estatísticas na aplicação

Map<Integer, Double> avaliacoesPorTemporada = episodios.stream()
                .filter(e -> e.getAvaliacao()> 0.0)
                .collect(Collectors.groupingBy(Episodio::getTemporada,
                        Collectors.averagingDouble(Episodio::getAvaliacao)));
        System.out.println(avaliacoesPorTemporada);


        DoubleSummaryStatistics est = episodios.stream()
                .filter(e -> e.getAvaliacao()> 0.0)
                .collect(Collectors.summarizingDouble(Episodio::getAvaliacao));
        System.out.println("Media " + est.getAverage());
        System.out.println("Melhor Episodio: " + est.getMax());
        System.out.println("Pior Episodio: " + est.getMin());
        System.out.println("Quantidade: " + est.getCount());
1 resposta

Oi, Benjamin! Como vai?

Você utilizou de forma muito eficaz os métodos groupingBy e summarizingDouble da API de streams do Java. A combinação dessas ferramentas mostra uma boa compreensão da manipulação de coleções e do uso de estatísticas com fluência funcional. Ficou bem organizado.

Uma dica interessante para o futuro é usar o método Collectors.counting() para obter a quantidade de elementos agrupados. Veja este exemplo:


Map quantidadePorTemporada = episodios.stream()
    .collect(Collectors.groupingBy(Episodio::getTemporada, Collectors.counting()));

System.out.println(quantidadePorTemporada);

Este código agrupa os episódios por temporada e conta quantos há em cada grupo, retornando um Map<Integer, Long>.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!