Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haga lo que hicimos en el aula:

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

1 respuesta

¡Hola Alexis, espero que estés bien!

Parece que estás trabajando en una tarea donde necesitas generar estadísticas sobre las evaluaciones de episodios utilizando lambdas y streams en Java. Tu código actual agrupa las evaluaciones por temporada y calcula la media de cada una. Sin embargo, parece que también necesitas utilizar la clase DoubleSummaryStatistics para obtener estadísticas más detalladas.

Aquí tienes un ejemplo de cómo podrías hacerlo:

DoubleSummaryStatistics estadisticas = episodios.stream()
    .filter(e -> e.getEvaluacion() > 0)
    .mapToDouble(Episodio::getEvaluacion)
    .summaryStatistics();

System.out.println("Media de evaluaciones: " + estadisticas.getAverage());
System.out.println("Mejor evaluación: " + estadisticas.getMax());
System.out.println("Peor evaluación: " + estadisticas.getMin());
System.out.println("Total de evaluaciones: " + estadisticas.getCount());

Con este código, puedes obtener la media, la mejor y la peor evaluación, así como el total de evaluaciones. Además, puedes utilizar el método peek para ver los elementos en el flujo mientras se procesan, lo cual es útil para depuración:

episodios.stream()
    .peek(e -> System.out.println("Procesando episodio: " + e))
    .filter(e -> e.getEvaluacion() > 0)
    .mapToDouble(Episodio::getEvaluacion)
    .summaryStatistics();

Espero que estos ejemplos te sean útiles para completar tu tarea. ¡Espero haber ayudado y buenos estudios!