IntStream reduce (identidad int, IntBinaryOperator op) en Java con ejemplos

IntStream reduce(int identidad, IntBinaryOperator op) realiza una reducción de los elementos de esta secuencia, utilizando el valor de identidad proporcionado y una función de acumulación asociativa, y devuelve el valor reducido.

Una operación de reducción o pliegue toma una secuencia de elementos de entrada y los combina en un solo resultado de resumen, como encontrar la suma o el máximo de un conjunto de números. Un operador o función op es asociativo si se cumple lo siguiente:

(a op b) op c == a op (b op c)

Esta es una operación terminal, es decir, puede atravesar el flujo para producir un resultado o un efecto secundario. Una vez realizada la operación de terminal, la canalización de flujo se considera consumida y ya no se puede utilizar.

Sintaxis:

int reduce(int identity,  IntBinaryOperator op)

Parámetros:

  • identidad : El valor de identidad para la función de acumulación.
  • IntBinaryOperator: una operación sobre dos operandos de valor int y que produce un resultado de valor int.
  • op : una función asociativa sin estado para combinar dos valores.

Valor de Retorno: El resultado de la reducción.

Ejemplo 1 :

// Java code for IntStream reduce
// (int identity, IntBinaryOperator op)
import java.util.*;
import java.util.stream.IntStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating an IntStream
        IntStream stream = IntStream.of(2, 3, 4, 5, 6);
  
        // Using IntStream reduce
        // (int identity, IntBinaryOperator op)
        int answer = stream.reduce(0, (num1, num2)
                                          -> (num1 + num2) * 2);
  
        // Displaying the result
        System.out.println(answer);
    }
}

Producción :

176

Ejemplo 2:

// Java code for IntStream reduce
// (int identity, IntBinaryOperator op)
import java.util.*;
import java.util.stream.IntStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating an IntStream
        IntStream stream = IntStream.range(4, 10);
  
        // Using IntStream reduce
        // (int identity, IntBinaryOperator op)
        int answer = stream.reduce(0, (num1, num2)
                                          -> (num1 + num2) - 2 * (num1 - num2));
  
        // Displaying the result
        System.out.println(answer);
    }
}

Producción :

9

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *