Tengo una Question, al pasar el stream por map, luego por filter, y luego por forEach no estamos consumiendo este steams más de una vez? ...

Hugo Bustamante

Hugo Bustamante

Pregunta
studenthace 3 años

Tengo una Question, al pasar el stream por map, luego por filter, y luego por forEach no estamos consumiendo este steams más de una vez? Se supone que solo se puede consumir una sola vez. agradezco cualquier claridad

1 respuestas
para escribir tu comentario
    Alex Lihuel Mujica

    Alex Lihuel Mujica

    studenthace 3 años

    No, estás consumiendo Streams diferentes. Tomando el ejemplo de la clase:

    Stream<String> courseStream = Stream.of("Java", "FrontEnd", "Backend", "FullStack"); courseStream.map(course -> course + "!!") .filter(course -> course.contains("Java")) .forEach(System.out::println)

    Inicialmente courseStream está compuesto por los elementos :

    ["Java","FrontEnd","Backend","FullStack"]
    .

    Al aplicar el map generás un nuevo Stream compuesto de los elementos :

    ["Java!!", "FrontEnd!!", "Backend!!", "FullStack!!"]
    . Como es un stream nuevo, a este lo podés consumir y aplicarle el filter. Al aplicar el filter te queda
    ["Java!!"]
    que, otra vez, es un Stream nuevo por lo cual lo podés consumir y aplicarle el forEach para imprimirlo en pantalla

Curso de Programación Funcional con Java SE

Curso de Programación Funcional con Java SE

Desarrolla aplicaciones funcionales en Java SE, aprendiendo a utilizar lambdas, streams y la clase Optional. Implementa colecciones y API RESTful, mientras construyes una herramienta CLI para buscar empleos en GitHub.

Curso de Programación Funcional con Java SE
Curso de Programación Funcional con Java SE

Curso de Programación Funcional con Java SE

Desarrolla aplicaciones funcionales en Java SE, aprendiendo a utilizar lambdas, streams y la clase Optional. Implementa colecciones y API RESTful, mientras construyes una herramienta CLI para buscar empleos en GitHub.