Adjunto mi versión de solución usando streams.
package org.example;
import Models.Episodio;
import Models.Pelicula;
import Models.Serie;
import Models.Titulo;
import Services.FiltroRecomendacion;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
private static ArrayList<Titulo> titulos = new ArrayList<>();
// private static final Scanner entry = new Scanner(System.in).useDelimiter("\n");
public static void main(String[] args) {
//Instanciación películas y series
Pelicula pelicula = new Pelicula();
Serie serie = new Serie();
Pelicula peliculaNueva = new Pelicula("matrix", 1999);
Pelicula favorita = new Pelicula("El señor de los anillos", 2001);
favorita.evalua(10);
Pelicula otra = new Pelicula("John Wick", 2014);
otra.evalua(9);
Serie serieNueva = new Serie("La Casa de Papel", 2017);
//seteo de parámetros objeto pelicula
pelicula.setNombre("Encanto");
pelicula.setFechaLanzamiento(2021);
pelicula.setDuracionMinutos(120);
pelicula.setDirector("Alfredo");
//Evaluación película encanto
pelicula.evalua(4.6);
pelicula.evalua(4.9);
pelicula.evalua(4.4);
//Seteo parametros serie
serie.setNombre("lucifer");
serie.setFechaLanzamiento(2013);
serie.setTemporada(6);
serie.setMinutosPorEpisodio(50);
serie.setEpisodiosPorTemporada(13);
serie.setDuracionMinutos(serie.getDuracionMinutos());
//Evaluación serie lucifer
serie.evalua(5.6);
serie.evalua(4.9);
serie.evalua(9.8);
FiltroRecomendacion filtroRecomendacion = new FiltroRecomendacion(pelicula);
filtroRecomendacion.filtrar();
Episodio episodio = new Episodio();
episodio.setNombre("A devil of my word");
episodio.setNumero(3);
episodio.setSerie(serie);
episodio.setTotalVisualizaciones(1450);
FiltroRecomendacion filtroSerie = new FiltroRecomendacion(episodio);
filtroSerie.filtrar();
//Agregar lista
titulos.add(pelicula); titulos.add(serie); titulos.add(peliculaNueva);
titulos.add(favorita); titulos.add(otra); titulos.add(serieNueva);
//Impresiones por pantalla de los objetos
System.out.println("Detalles película: \n" + pelicula.toString());
System.out.println("Detalles serie: \n" + serie.toString());
titulos.stream().forEach(titulo -> {
if(titulo instanceof Pelicula movie && movie.getClasificacion() > 2){
System.out.println(movie.getClasificacion());
}
});
}
}