¿Qué imprime esto?
Stream.of(1, 2, 3)
.peek(x -> System.out.print("a" + x + " "))
.map(x -> x * 2);
System.out.println("done");Opciones
- a1 a2 a3 done
- done (Opción correcta)
- done a1 a2 a3
- Error de compilación
Respuesta
done
Por qué
Los streams son lazy: las operaciones intermedias (peek, map, filter) solo describen qué hacer. Nada se ejecuta hasta que se llama a una operación terminal (collect, forEach, count, toList...).
Aquí no hay operación terminal, así que el pipeline nunca se ejecuta y solo se imprime "done".
Recuerda
Sin operación terminal = no se ejecuta nada.