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