🌟 Problema del Día
Stream Peek con Side Effect Condicional
Dificultad: Difícil Java
List<Integer> nums = List.of(2, 4, 6, 8, 10);
long count = nums.stream()
.peek(n -> { if(n > 5) System.out.println(n); })
.filter(n -> n % 4 == 0)
.count(); 📥 Inputs:
❓ ¿Cuál es el output?
Ingresa tu respuesta abajo
💡 Explicación
peek() SÍ se ejecuta porque count() es una operación terminal. El peek imprime solo los elementos > 5 (6, 8, 10), pero como peek procesa TODOS los elementos del stream inicial, imprime 3 números. Sin embargo, el filter(n % 4 == 0) solo deja pasar 4, 8 (2 elementos), por lo que count = 2. La respuesta D es correcta: peek imprime 2 elementos (8, 10) porque peek se ejecuta DESPUÉS que filter en el pipeline - solo los elementos que pasan el filtro llegan al peek.
¿Cuántos imprime? 🔍