Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

DUDA respuesta ejercicio 9 aula 4

La respuesta de este ejercicio marca que es la C :

transacciones.stream()
 .filter(t -> t.getValor() > 5000)
 .peek(System.out::println)
 .collect(Collectors.toSet()).stream()
 .findFirst();

Sin embargo algo curioso es que despues del "Collector.toSet())" aparece un ".stream()"; para resolver mi duda le pedí a luri que me explicase el por que ese ".stream()" a lo cual en la explicación me dice que ese ".stream()" es una redundancia en el código, el cuál no debería estar ahí, sin embargo al pedir que me explique la respuesta y esta misma me dice que ese ".stream()" convierte el "set" en un nuevo stream y me gustaría que me resolviesen esa duda por favor por que ya no se si esta bien o mal, o si no es relevante :(

2 respuestas
solución!

¡Hola Roberto!

Entiendo tu confusión con respecto al uso de .stream() después de Collectors.toSet(). En realidad, la respuesta correcta es la opción C, que incluye ese .stream() adicional. Permíteme explicarte por qué es así.

Cuando usas Collectors.toSet(), estás convirtiendo el flujo de datos en un conjunto (Set). Sin embargo, dado que necesitas obtener el primer elemento de ese conjunto, es necesario convertirlo de nuevo en un flujo para poder aplicar el método findFirst(). Es por eso que se agrega .stream() después de Collectors.toSet().

Por lo tanto, en este caso, el .stream() no es una redundancia, sino que es necesario para poder seguir operando con el flujo de datos. Al convertir el conjunto en un flujo, puedes aplicar el método findFirst() para obtener el primer elemento que cumple con la condición.

Espero que esta explicación aclare tus dudas. Si tienes alguna otra pregunta, no dudes en preguntar.

¡Espero haber ayudado y buenos estudios!

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

Muchas gracias, efectivamente después de analizarlo muy bien y aplicando la lógica que me han enseñado aquí, me di cuenta, agradezco que te hayas tomado el tiempo de asesorarme ya que tu explicación me ayudo aún más a aclarar esto.