En Java, Stream proporciona una poderosa alternativa para procesar datos donde aquí discutiremos uno de los métodos más utilizados llamado peek() que, al ser una acción del consumidor, básicamente devuelve un flujo que consta de los elementos de este flujo, además de realizar la acción proporcionada. en cada elemento a medida que se consumen elementos del flujo resultante. Esta es una operación intermedia, ya que crea una nueva secuencia que, cuando se recorre, contiene los elementos de la secuencia inicial que coinciden con el predicado dado.
Sintaxis:
Stream<T> peek(Consumer<? super T> action)
Aquí, Stream es una interfaz y T es el tipo de elemento de flujo. action es una acción que no interfiere para realizar en los elementos a medida que se consumen de la transmisión y la función devuelve la nueva transmisión. Ahora debemos comprender el ciclo de vida del método peek() a través de su funcionamiento interno a través de los programas java limpios que se enumeran a continuación como sigue:
Nota:
- Este método existe principalmente para admitir la depuración, donde desea ver los elementos a medida que pasan por un punto determinado en una canalización.
- Desde Java 9, si la cantidad de elementos se conoce de antemano y no cambia en la transmisión, la instrucción .peek() no se ejecutará debido a la optimización del rendimiento. Es posible forzar su funcionamiento mediante un comando (formal) cambiando el número de elementos ej. .filtro (x -> verdadero).
- Usar peek sin ninguna operación de terminal no hace nada.
Ejemplo 1:
Java
// Java Program to Illustrate peek() Method // of Stream class Without Terminal Operation Count // Importing required classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Creating a list of Integers List<Integer> list = Arrays.asList(0, 2, 4, 6, 8, 10); // Using peek without any terminal // operation does nothing list.stream().peek(System.out::println); } }
Producción:
Del resultado anterior, podemos percibir que este fragmento de código no producirá ningún resultado.
Ejemplo 2:
Java
// Java Program to Illustrate peek() Method // of Stream class With Terminal Operation Count // Importing required classes import java.util.*; // Main class class GFG { // Main driver method public static void main(String[] args) { // Creating a list of Integers List<Integer> list = Arrays.asList(0, 2, 4, 6, 8, 10); // Using peek with count() method,Method // which is a terminal operation list.stream().peek(System.out::println).count(); } }
Producción:
0 2 4 6 8 10
Publicación traducida automáticamente
Artículo escrito por Sahil_Bansall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA