Junior — Middle
¿Puede explicar qué significa el término 'operación no terminal' al trabajar con flujos de datos en la API Stream?
sobes.tech AI
Respuesta de la IA
En la API de Stream de Java, las operaciones se dividen en terminales y no terminales (intermedias).
Una operación no terminal es aquella que devuelve un nuevo flujo (Stream) y no inicia el procesamiento de datos de inmediato. Sirve para construir una cadena de transformaciones, por ejemplo, filtrado, mapeo, ordenamiento.
Ejemplo de operaciones no terminales:
- filter()
- map()
- sorted()
- distinct()
Estas operaciones son perezosas: no se ejecutan hasta que se llama a una operación terminal, por ejemplo, forEach(), collect(), count().
Ejemplo:
List<String> list = Arrays.asList("a", "bb", "ccc");
list.stream()
.filter(s -> s.length() > 1) // no terminal
.map(String::toUpperCase) // no terminal
.forEach(System.out::println); // terminal
De esta manera, las operaciones no terminal permiten construir una cadena de transformaciones, y la terminal inicia la ejecución.