DoubleStream reduce (DoubleBinaryOperator op) en Java

DoubleStream reduce(DoubleBinaryOperator op) realiza una reducción de los elementos de esta secuencia mediante una función de acumulación asociativa y devuelve un OptionalDouble que describe el valor reducido, si lo hay.

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:

OptionalDouble reduce(DoubleBinaryOperator op)

Parámetros:

  • OptionalDouble: un objeto contenedor que puede o no contener un valor largo. Si hay un valor presente, isPresent() devolverá verdadero y getAsDouble() devolverá el valor.
  • DoubleBinaryOperator: una operación sobre dos operandos de doble valor y que produce un resultado de doble valor.
  • op : una función asociativa sin estado para combinar dos valores.

Valor devuelto: un OptionalDouble que describe el valor reducido, si lo hay.

Ejemplo 1 :

// Java code for DoubleStream reduce
// (DoubleBinaryOperator op)
import java.util.OptionalDouble;
import java.util.stream.DoubleStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating a DoubleStream
        DoubleStream stream = DoubleStream.of(1.2, 2.3, 3.4, 4.5);
  
        // Using OptionalDouble (a container object which
        // may or may not contain a non-null value)
        // Using DoubleStream reduce(DoubleBinaryOperator op)
        OptionalDouble answer = stream.reduce(Double::sum);
  
        // if the stream is empty, an empty
        // OptionalDouble is returned.
        if (answer.isPresent()) {
            System.out.println(answer.getAsDouble());
        }
        else {
            System.out.println("Stream is empty");
        }
    }
}

Producción :

11.4

Ejemplo 2:

// Java code for DoubleStream reduce
// (DoubleBinaryOperator op)
import java.util.OptionalDouble;
import java.util.stream.DoubleStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating a DoubleStream
        DoubleStream stream = DoubleStream.of(1.2, 2.3, 3.4, 4.5);
  
        // Using OptionalDouble (a container object which
        // may or may not contain a non-null value)
        // Using DoubleStream reduce(DoubleBinaryOperator op)
        OptionalDouble answer = stream.reduce((a, b)
                                  -> (a * b) * (a * b));
  
        // if the stream is empty, an empty
        // OptionalDouble is returned.
        if (answer.isPresent()) {
            System.out.println(answer.getAsDouble());
        }
        else {
            System.out.println("Stream is empty");
        }
    }
}

Producción :

9111992.471343633

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 *