Streams Intermedio

Usa un predicado para detener la iteración — como un bucle for en forma de stream.

✕ Java 8
Stream.iterate(1, n -> n * 2)
    .limit(10)
    .forEach(System.out::println);
// can't stop at a condition
✓ Java 9+
Stream.iterate(
    1,
    n -> n < 1000,
    n -> n * 2
).forEach(IO::println);
// stops when n >= 1000
¿Ves un problema con este código? Cuéntanos.
🎯

Terminación natural

Se detiene según una condición, no un límite arbitrario.

📐

Equivalente a for

Misma semántica que for(seed; hasNext; next).

🛡️

Sin riesgo de stream infinito

El predicado garantiza la terminación.

Enfoque Antiguo
iterate + limit
Enfoque Moderno
iterate(seed, pred, op)
Desde JDK
9
Dificultad
Intermedio
Stream.iterate() con predicado
Disponible

Ampliamente disponible desde JDK 9 (sept. 2017)

El Stream.iterate(seed, hasNext, next) con tres argumentos funciona como un bucle for: seed es el inicio, hasNext determina cuándo detenerse y next produce el siguiente valor.

Compartir 𝕏 🦋 in