En Java, Stream es una poderosa herramienta para procesar datos de recopilación. Proporciona una forma de programación funcional para operar y transformar datos. Un método en una secuencia peek
es una operación no terminal que le permite realizar una operación en cada elemento de la secuencia sin cambiar el contenido de la secuencia.
peek
La sintaxis del método es la siguiente:
Stream<T> peek(Consumer<? super T> action)
donde action
es una función que recibe un elemento y realiza una operación.
peek
La función principal del método es realizar una operación en cada elemento de la secuencia, como imprimir el valor del elemento, registrar, depurar, etc. Normalmente se utiliza para depurar y observar el estado intermedio de una secuencia sin modificar el contenido de la secuencia.
Aquí hay un peek
ejemplo simple de cómo usarlo:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> doubledNumbers = numbers.stream()
.peek(n -> System.out.println("Processing number: " + n))
.map(n -> n * 2)
.collect(Collectors.toList());
En el ejemplo anterior, creamos una lista de números enteros numbers
y luego procesamos cada elemento a través de una secuencia. En la operación del flujo peek
, imprimimos el valor de cada número. Luego usamos map
una operación para multiplicar cada número por 2 y recopilar los resultados en una nueva lista.
Cuando ejecutamos el código anterior, vemos el siguiente resultado:
Processing number: 1
Processing number: 2
Processing number: 3
Processing number: 4
Processing number: 5
Al usar peek
métodos, podemos observar el procesamiento de cada elemento en la secuencia. Esto es útil para depurar y comprender los estados intermedios de una secuencia.
Cabe señalar que peek
el método es una operación intermedia y no desencadena la operación terminal del flujo. Si desea modificar el contenido de la transmisión u obtener el resultado final, debe agregar peek
una operación de terminal después del método, como collect
, forEach
etc.
En resumen, peek
un método es una operación no terminal que realiza una operación en cada elemento de la secuencia. Normalmente se utiliza para depurar y observar el estado intermedio de una secuencia sin modificar el contenido de la secuencia.