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

Haz como yo hice

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

System.out.println("\nPromedio de evaluación por temporada:");
evaluacionesPorTemporada.forEach((temporada, promedio) ->
System.out.println("Temporada " + temporada + ": " + promedio));

DoubleSummaryStatistics est = episodios.stream()
.filter(e -> e.getEvaluacion() > 0.0)
.collect(Collectors.summarizingDouble(Episodio::getEvaluacion));

System.out.println("\nEstadísticas generales de evaluaciones:");
System.out.println("Cantidad de episodios evaluados: " + est.getCount());
System.out.println("Promedio de evaluación: " + est.getAverage());
System.out.println("Mejor evaluación: " + est.getMax());
System.out.println("Peor evaluación: " + est.getMin());
System.out.println("Suma total de evaluaciones: " + est.getSum());

Optional mejorEpisodio = episodios.stream()
.filter(e -> e.getEvaluacion() > 0.0)
.max(Comparator.comparing(Episodio::getEvaluacion));

System.out.println("\nMejor episodio:");
mejorEpisodio.ifPresent(System.out::println);

Optional peorEpisodio = episodios.stream()
.filter(e -> e.getEvaluacion() > 0.0)
.min(Comparator.comparing(Episodio::getEvaluacion));

System.out.println("\nPeor episodio:");
peorEpisodio.ifPresent(System.out::println);

System.out.println("\nEspiando el procesamiento de episodios:");

episodios.stream()
.filter(e -> e.getEvaluacion() > 0.0)
.peek(e -> System.out.println("Filtrado: " + e.getTitulo()))
.sorted(Comparator.comparing(Episodio::getEvaluacion).reversed())
.peek(e -> System.out.println("Ordenado: " + e.getTitulo() + " - " + e.getEvaluacion()))
.limit(5)
.forEach(e -> System.out.println("Top episodio: " + e.getTitulo()));

import java.util.Comparator;
import java.util.DoubleSummaryStatistics;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;

System.out.println("\nTop 5 episodios:");
episodios.stream()
.filter(e -> e.getEvaluacion() > 0.0)
.sorted(Comparator.comparing(Episodio::getEvaluacion).reversed())
.limit(5)
.forEach(System.out::println);

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

System.out.println("\nPromedio de evaluación por temporada:");
evaluacionesPorTemporada.forEach((temporada, promedio) ->
System.out.println("Temporada " + temporada + ": " + promedio));

DoubleSummaryStatistics est = episodios.stream()
.filter(e -> e.getEvaluacion() > 0.0)
.collect(Collectors.summarizingDouble(Episodio::getEvaluacion));

System.out.println("\nEstadísticas generales:");
System.out.println("Total de episodios evaluados: " + est.getCount());
System.out.println("Promedio de la serie: " + est.getAverage());
System.out.println("Mejor evaluación: " + est.getMax());
System.out.println("Peor evaluación: " + est.getMin());
System.out.println("Suma de evaluaciones: " + est.getSum());

Optional mejorEpisodio = episodios.stream()
.filter(e -> e.getEvaluacion() > 0.0)
.max(Comparator.comparing(Episodio::getEvaluacion));

Optional peorEpisodio = episodios.stream()
.filter(e -> e.getEvaluacion() > 0.0)
.min(Comparator.comparing(Episodio::getEvaluacion));

System.out.println("\nMejor episodio:");
mejorEpisodio.ifPresent(System.out::println);

System.out.println("\nPeor episodio:");
peorEpisodio.ifPresent(System.out::println);

System.out.println("\nEspiando el stream con peek:");
episodios.stream()
.filter(e -> e.getEvaluacion() > 0.0)
.peek(e -> System.out.println("Pasó filtro: " + e.getTitulo()))
.sorted(Comparator.comparing(Episodio::getEvaluacion).reversed())
.peek(e -> System.out.println("Después de ordenar: " + e.getTitulo() + " -> " + e.getEvaluacion()))
.limit(5)
.forEach(e -> System.out.println("Resultado final: " + e.getTitulo()

1 respuesta

Hola David,

Gracias por compartir tu experiencia con nosotros. Es muy valioso ver los enfoques que cada uno le da a los ejercicios.

Te recomiendo que puedes interactuar con el resto de nuestros compañeros por nuestro Discord.

En virtud de que en Discord el alcance es mayor, la interacción es inmediata y llega a más compañeros, y el foro solo quedaría para esclarecer cualquier duda que puedas tener sobre el contenido de los cursos.

De esa manera, si quieres seguir compartiendo tu experiencia y aprendizajes, sea por el Discord — con certeza por ahí llegará a más personas.

¡Gracias nuevamente!

Saludos,

Si este post te ayudó, por favor, marca como solucionado ✓. ¡Continúa con tus estudios!