Java 8 | Coleccionistas promediandoInt() con ejemplos

El método Collectors averagingInt(ToIntFunction<? super T> mapper) se usa para encontrar la media de los enteros pasados ​​en los parámetros. Este método devuelve un Collector que produce la media aritmética de una función de valor entero 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> 
     averagingInt(ToIntFunction<? super T> mapper)

dónde,

  • 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.
  • ToIntFunction: Representa una función que produce un resultado de valor int.

Parámetros: este método toma un asignador de parámetros obligatorio que es del tipo ToIntFunction . Es una función que extrae un tipo de valor int de una secuencia.

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

Programa 1:

// Java code to show the implementation of
// Collectors averagingInt(ToIntFunction 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 with numbers
        Stream<String> s = Stream.of("3", "4", "5");
  
        // using Collectors averagingInt(ToIntFunction mapper)
        // method to find arithmetic mean of inputs given
        double ans = s
                         .collect(Collectors
                                      .averagingInt(
                                          num -> Integer.parseInt(num)));
  
        // displaying the result
        System.out.println(ans);
    }
}
Producción:

4.0

Programa 2: cuando no se pasa ningún elemento de entrada como parámetro al método averagingInt().

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

0.0

Programa 3:

// Java code to show the implementation of
// Collectors averagingInt(ToIntFunction 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 averagingInt(ToIntFunction mapper)
        // method to find arithmetic mean of inputs given
        double ans = s
                         .collect(Collectors
                                      .averagingInt(
                                          num -> Integer.parseInt(num)));
  
        // displaying the result
        System.out.println(ans);
    }
}
Producción:

8.5

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 *