Buenas, paso mi resolucion de los ejercicios
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List cursos = new ArrayList<>();
cursos.add(new Curso("Cursos profesional de Java", 6.5f, 50, 200 ));
cursos.add(new Curso("Cursos profesional de Python", 8.5f, 60, 800 ));
cursos.add(new Curso("Cursos profesional de DB", 4.5f, 70, 700 ));
cursos.add(new Curso("Cursos profesional de Android", 7.5f, 10, 400 ));
cursos.add(new Curso("Cursos profesional de Escritura", 1.5f, 10, 300 ));
Comparator<Curso> comparatorDuracion = Comparator.comparing(curso -> curso.getDuracion());
// 1) Obtener la cantidad de cursos con una duración mayor a 5 horas.
System.out.println("Punto 1:");
long cantCursosMayor5Horas = cursos.stream().filter(duracion -> duracion.getDuracion() > 5).count();
System.out.println(cantCursosMayor5Horas);
System.out.println("");
// 2) Obtener la cantidad de cursos con una duración menor a 2 horas.
System.out.println("Punto 2:");
long cantCursosMenor2Horas = cursos.stream().filter(duracion -> duracion.getDuracion() < 2).count();
System.out.println(cantCursosMenor2Horas);
System.out.println("");
// 3) Listar el título de todos aquellos cursos con una cantidad de vídeos mayor a 50.
System.out.println("Punto 3:");
cursos.stream().filter(duracion -> duracion.getVideos() > 50).forEach(curso -> System.out.println(curso.getTitulo()));
System.out.println("");
// 4) Mostrar en consola el título de los 3 cursos con mayor duración.
System.out.println("Punto 4:");
cursos.stream().sorted(comparatorDuracion.reversed()).limit(3).forEach(curso -> System.out.println(curso.getTitulo()));
System.out.println("");
// 5) Mostrar en consola la duración total de todos los cursos.
System.out.println("Punto 5:");
double duracionTotal = cursos.stream().mapToDouble(curso -> curso.getDuracion()).sum();
System.out.println(duracionTotal);
System.out.println("");
// 6) Mostrar en consola todos aquellos titulos que superen el promedio en cuanto a duración se refiere.
System.out.println("Punto 6:");
double promedioDuracion = cursos.stream().mapToDouble(curso -> curso.getDuracion()).average().orElse(0);
List<String> librosSuperanPromedio = cursos.stream()
.filter(curso -> curso.getDuracion() > promedioDuracion)
.map(curso -> curso.getTitulo())
.collect(Collectors.toList());
System.out.println(librosSuperanPromedio);
System.out.println("");
// 7) Mostrar en consola la duración de todos aquellos cursos que tengan una cantidad de alumnos inscritos menor a 500.
System.out.println("Punto 7:");
cursos.stream().filter(alumno -> alumno.getAlumnos() < 500).forEach(curso -> System.out.println(curso.getDuracion()));
System.out.println("");
// 8) Obtener el curso con mayor duración.
System.out.println("Punto 8:");
cursos.stream().sorted(comparatorDuracion.reversed()).limit(1).forEach(curso -> System.out.println(curso.getTitulo()));
System.out.println("");
// 9) Crear una lista de Strings con todos los titulos de los cursos.
System.out.println("Punto 9:");
List<String> listaTitulos = cursos.stream().map(curso -> curso.getTitulo()).collect(Collectors.toList());
System.out.println(listaTitulos);
}
}