Java 8 | Коллекторы averagingInt () с примерами

Опубликовано: 12 Февраля, 2022

Метод Collectors averagingInt (ToIntFunction <? Super T> mapper) используется для нахождения среднего значения целых чисел, переданных в параметрах. Этот метод возвращает Collector, который производит среднее арифметическое целочисленной функции, применяемой к входным элементам. Если в качестве входных элементов не переданы никакие элементы, этот метод возвращает 0.

Формула, используемая этим методом для вычисления среднего арифметического:

Синтаксис:

общедоступная статика 
   <T> Коллекционер <T,?, Double> 
     averagingInt (преобразователь ToIntFunction <? super T>)

куда,

  • Сборщик интерфейса < T, A, R > : изменяемая операция сокращения, которая накапливает входные элементы в изменяемый контейнер результата, при необходимости преобразуя накопленный результат в окончательное представление после того, как все входные элементы были обработаны. Операции восстановления могут выполняться как последовательно, так и параллельно.
    • T: Тип входных элементов операции сокращения.
    • A: Изменяемый тип накопления операции сокращения.
    • R: Тип результата операции сокращения.
  • Double: класс Double заключает в объект значение примитивного типа double. Объект типа Double содержит одно поле с типом double.
  • ToIntFunction: представляет функцию, которая возвращает результат с целым числом значений.

Параметры: этот метод принимает обязательный модуль сопоставления параметров типа ToIntFunction . Это функция, которая извлекает значение типа int из потока.

Ниже приведены примеры, иллюстрирующие метод averagingInt ():

Program 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);
    }
}
Output:
4.0

Program 2: When no input element is passed as the parameter to averagingInt() method.

// 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);
    }
}
Output:
0.0

Program 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);
    }
}
Output:
8.5

Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .