РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
540 of 1163 menu

Метод summarizingInt

Метод summarizingInt класса Collectors возвращает коллектор, который применяет к каждому элементу потока функцию-маппер, приводящую элемент к типу int, и собирает по полученным значениям полную статистику. В первый параметр мы передаем функцию-маппер, которая извлекает из элемента потока целочисленное значение. Результатом работы коллектора является объект класса IntSummaryStatistics, содержащий количество элементов, сумму, минимальное значение, максимальное значение и среднее арифметическое.

У объекта IntSummaryStatistics доступны методы getCount, getSum, getMin, getMax и getAverage.

Синтаксис

Collectors.summarizingInt(mapper)

Пример

Давайте соберем статистику по числам из списка:

import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> list = List.of(1, 2, 3, 4, 5); IntSummaryStatistics res = list.stream() .collect(Collectors.summarizingInt(n -> n)); System.out.println(res.getCount()); System.out.println(res.getSum()); System.out.println(res.getMin()); System.out.println(res.getMax()); System.out.println(res.getAverage()); } }

Результат выполнения кода:

5 15 1 5 3.0

Пример

Давайте выведем объект статистики целиком, чтобы увидеть его строковое представление:

import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Integer> list = List.of(1, 2, 3, 4, 5); IntSummaryStatistics res = list.stream() .collect(Collectors.summarizingInt(n -> n)); System.out.println(res); } }

Результат выполнения кода:

IntSummaryStatistics{count=5, sum=15, min=1, average=3.000000, max=5}

Пример

Давайте применим маппер, который извлекает длину строк, и получим статистику по длинам:

import java.util.List; import java.util.IntSummaryStatistics; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<String> list = List.of("abcde", "12345", "abc", "1"); IntSummaryStatistics res = list.stream() .collect(Collectors.summarizingInt(String::length)); System.out.println(res.getCount()); System.out.println(res.getSum()); System.out.println(res.getMin()); System.out.println(res.getMax()); System.out.println(res.getAverage()); } }

Результат выполнения кода:

4 14 1 5 3.5

Смотрите также

  • класс Collectors,
    который содержит готовые коллекторы
  • метод counting,
    который считает количество элементов
  • метод reducing,
    который сворачивает элементы в одно значение
  • метод mapping,
    который преобразует элементы перед сбором
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить