Java | Coleccionistas promediandoDouble() con ejemplos

El método de los recopiladores averagingDouble(ToDoubleFunction<? super T> mapper) se usa para encontrar la media de los valores dobles pasados ​​en los parámetros. Este método devuelve un Collector que produce la media aritmética de una función de doble valor aplicada a los elementos de entrada. Si no se pasan elementos como elementos de entrada, este método devuelve 0.

La fórmula utilizada por este método para calcular la media aritmética es:

  {\displaystyle A={\frac {1}{n}}\sum _{i=1}^{n}a_{i}={\frac {a_{1}+a_{2}+\cdots +a_{n}}{n}}}

Sintaxis:

public static <T> 
    Collector<T, ?, Double> 
        averagingDouble(ToDoubleFunction<? super T> mapper)

donde los términos son los siguientes:

  • Interface Collector<T, A, R> : una operación de reducción mutable que acumula elementos de entrada en un contenedor de resultados mutable, transformando opcionalmente el resultado acumulado en una representación final después de que se hayan procesado todos los elementos de entrada. Las operaciones de reducción se pueden realizar secuencialmente o en paralelo.
    • T: El tipo de elementos de entrada a la operación de reducción.
    • A: El tipo de acumulación mutable de la operación de reducción.
    • R: El tipo de resultado de la operación de reducción.
  • Doble: La clase Doble envuelve un valor del tipo primitivo doble en un objeto. Un objeto de tipo Doble contiene un solo campo cuyo tipo es doble.
  • ToDoubleFunction: Representa una función que produce un resultado de doble valor.

Parámetros: este método acepta un asignador de parámetros que es un flujo de doble valor convertido en doble mediante ToDoubleFunctions. ToDoubleFunction es una función que extrae un tipo doble de valor mientras trabaja en los objetos de la secuencia.

A continuación, se muestran ejemplos para ilustrar el método promediarDoble():

Programa 1:

// Java code to show the implementation of
// averagingDouble(ToDoubleFunction mapper) function
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // creating a string stream
        Stream<String> s = Stream.of("3", "4", "5");
  
        // using Collectors averagingDouble(ToDoubleFunction mapper)
        // method to find arithmetic mean of inputs given
        double ans = s
                         .collect(Collectors
                                      .averagingDouble(
                                          num -> Double.parseDouble(num)));
  
        // displaying the result
        System.out.println(ans);
    }
}
Producción:

4.0

Programa 2:

// Java code to show the implementation of
// averagingDouble(ToDoubleFunction mapper) function
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // creating a string stream
        Stream<String> s = Stream.of("7", "8", "9", "10");
  
        // using Collectors averagingDouble(ToDoubleFunction mapper)
        // method to find arithmetic mean of inputs given
        double ans = s
                         .collect(Collectors
                                      .averagingDouble(
                                          num -> Double.parseDouble(num)));
  
        // displaying the result
        System.out.println(ans);
    }
}
Producción:

8.5

Programa 3: Cuando no se pasa ningún valor como parámetro.

// Java code to show the implementation of
// averagingDouble(ToDoubleFunction mapper) function
  
import java.util.stream.Collectors;
import java.util.stream.Stream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
  
        // creating a string stream
        Stream<String> s = Stream.of();
  
        // using Collectors averagingDouble(ToDoubleFunction mapper)
        // method to find arithmetic mean of inputs given
        double ans = s
                         .collect(Collectors
                                      .averagingDouble(
                                          num -> Double.parseDouble(num)));
  
        // displaying the result
        System.out.println(ans);
    }
}
Producción:

0.0

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 *