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

filtrado de curso usando stream

Buenas tardes, no logro comprender la sintaxis de este comando:

1 List<Curso> cursoList = cursos.stream()
2    .filter(curso ->!curso.getNombre().equalsIgnoreCase("Java"))
3    .sorted(Comparator.comparing(Curso::getNombre).reversed())
4    .collect(Collectors.toList());

En particular la segunda linea no comprendo que significa -> y luego de la tercera linea el parentesis (Curso::getNombre)

Gracias por algun indicio, este curso en particular me esta costando mucho pero sigo poniendo fuerza!

1 respuesta

A continuación se explica línea por línea:

  1. Se crea una nueva lista de tipo Curso llamada cursoList.
  2. Se filtra la lista original cursos para excluir todos los objetos Curso cuyo nombre sea "Java", utilizando el método filter(). El operador ! niega la igualdad de cadenas para buscar las que no sean iguales.
  3. Se ordena la lista filtrada por nombre de curso en orden descendente, utilizando el método sorted() y la clase Comparator. El método reversed() invierte el orden de la clasificación, lo que resulta en un orden descendente.
  4. Se recopilan los elementos restantes en una nueva lista cursoList utilizando el método collect() y la clase Collectors.

En resumen, el código filtra una lista de objetos Curso para excluir los objetos con nombre "Java", los ordena en orden descendente según su nombre y los recopila en una nueva lista.