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: aplicando streams y manipulando datos

En esta aula adapté el proyecto para usar una clase Episodio como parte de la lógica de negocio, en lugar de trabajar directamente con DatosEpisodio. Creé el List<Episodio> usando stream(), flatMap() y map() para transformar los datos, incluyendo la conversión de String a Double y LocalDate, además de manejar excepciones.

También implementé la impresión de los 5 mejores episodios ordenando por evaluación de forma descendente con sorted() y limit(5).

Por último, agregué la búsqueda de episodios a partir de un año específico usando LocalDate, isAfter() y un DateTimeFormatter para mostrar la fecha en un formato más amigable.

1 respuesta

¡Hola Estudiante, espero que estés bien!

Parece que estás haciendo un gran trabajo al aplicar lambdas y streams en tu proyecto. Aquí tienes algunos consejos que pueden ayudarte a asegurarte de que estás en el camino correcto:

  1. Transformación de Datos: Cuando estás usando stream(), flatMap() y map(), asegúrate de que estás transformando correctamente los datos de DatosEpisodio a Episodio. Por ejemplo, si DatosEpisodio tiene un campo de fecha como String, puedes usar LocalDate.parse() junto con un DateTimeFormatter para convertirlo a LocalDate.

    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
    LocalDate date = LocalDate.parse(dateString, formatter);
    
  2. Ordenación y Limitación: Para obtener los 5 mejores episodios, asegúrate de que estás ordenando correctamente por la evaluación. Puedes hacer algo como:

    List<Episodio> topEpisodios = episodios.stream()
        .sorted(Comparator.comparing(Episodio::getEvaluacion).reversed())
        .limit(5)
        .collect(Collectors.toList());
    
  3. Búsqueda por Año: Para filtrar episodios a partir de un año específico, puedes usar isAfter() en combinación con LocalDate.of() para crear la fecha de referencia:

    LocalDate startDate = LocalDate.of(2020, 1, 1); // Cambia 2020 por el año deseado
    List<Episodio> episodiosFiltrados = episodios.stream()
        .filter(e -> e.getFecha().isAfter(startDate))
        .collect(Collectors.toList());
    

Espero que estos ejemplos te sean útiles. Sigue adelante con tu proyecto y no dudes en ajustar el código según tus necesidades específicas. ¡Espero haber ayudado y buenos estudios!