Spec-Zone.ru › OpenJDK 25

Класс DoubleSummaryStatistics

java.lang.Object
java.util.DoubleSummaryStatistics
Все реализуемые интерфейсы:
DoubleConsumer
public class DoubleSummaryStatistics extends Object implements DoubleConsumer
Объект состояния для сбора статистики, такой как количество, минимум, максимум, сумма и среднее значение.

Этот класс предназначен для работы с потоками (но не требует их использования). Например, можно вычислить сводную статистику для потока значений типа double следующим образом:

 DoubleSummaryStatistics stats = doubleStream.collect(DoubleSummaryStatistics::new,
                                                      DoubleSummaryStatistics::accept,
                                                      DoubleSummaryStatistics::combine);
 

DoubleSummaryStatistics можно использовать в качестве целевого объекта для сведения потока. Например:

 DoubleSummaryStatistics stats = people.stream()
     .collect(Collectors.summarizingDouble(Person::getWeight));
Это вычисляет за один проход количество людей, а также минимальный, максимальный и средний вес и сумму их весов.
Примечание по реализации:
Эта реализация не является потокобезопасной. Однако безопасно использовать Collectors.summarizingDouble() для параллельного потока, поскольку параллельная реализация Stream.collect() обеспечивает необходимое разбиение на части, изоляцию и объединение результатов для безопасного и эффективного параллельного выполнения.

Эта реализация не проверяет переполнение счетчика.

Начиная с версии:
1.8

Краткое описание конструкторов

Конструктор Описание
DoubleSummaryStatistics()
Создает пустой экземпляр с нулевым количеством, нулевой суммой, Double.POSITIVE_INFINITY минимумом, Double.NEGATIVE_INFINITY максимумом и нулевым средним значением.
DoubleSummaryStatistics(long count, double min, double max, double sum)
Создает непустой экземпляр с указанными count, min, max и sum.

Краткое описание методов

Модификатор и тип Метод Описание
void accept(double value)
Добавляет еще одно значение к сводной информации.
void combine(DoubleSummaryStatistics other)
Объединяет состояние другого DoubleSummaryStatistics с этим объектом.
final double getAverage()
Возвращает среднее арифметическое записанных значений или ноль, если значения не записывались.
final long getCount()
Возвращает количество записанных значений.
final double getMax()
Возвращает максимальное записанное значение, Double.NaN, если какое-либо записанное значение было NaN, или Double.NEGATIVE_INFINITY, если значения не записывались.
final double getMin()
Возвращает минимальное записанное значение, Double.NaN, если какое-либо записанное значение было NaN, или Double.POSITIVE_INFINITY, если значения не записывались.
final double getSum()
Возвращает сумму записанных значений или ноль, если значения не записывались.
String toString()
Возвращает непустое строковое представление этого объекта, пригодное для отладки.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе DoubleConsumer

andThen

Подробное описание конструкторов

DoubleSummaryStatistics

public DoubleSummaryStatistics()
Создает пустой экземпляр с нулевым количеством, нулевой суммой, Double.POSITIVE_INFINITY минимумом, Double.NEGATIVE_INFINITY максимумом и нулевым средним значением.

DoubleSummaryStatistics

public DoubleSummaryStatistics(long count, double min, double max, double sum) throws IllegalArgumentException
Создает непустой экземпляр с указанными count, min, max и sum.

Если count равно нулю, остальные аргументы игнорируются и создается пустой экземпляр.

Если аргументы противоречат друг другу, выбрасывается IllegalArgumentException. Необходимые условия согласованности аргументов:

  • count >= 0
  • (min <= max && !isNaN(sum)) || (isNaN(min) && isNaN(max) && isNaN(sum))
Примечание к API:
Проверка корректности аргументов означает, что полученный набор записанных значений из исходного экземпляра DoubleSummaryStatistics может не быть допустимым набором аргументов для этого конструктора из-за арифметического переполнения счетчика записанных значений исходного экземпляра. Условия согласованности аргументов недостаточны для предотвращения создания внутренне несогласованного экземпляра. Примером такого состояния может быть экземпляр со следующими значениями: count = 2, min = 1, max = 2 и sum = 0.
Параметры:
count — количество значений
min — минимальное значение
max — максимальное значение
sum — сумма всех значений
Выбрасывает:
IllegalArgumentException — если аргументы противоречат друг другу
Начиная с версии:
10

Подробное описание методов

accept

public void accept(double value)
Добавляет еще одно значение к сводной информации.
Определен в:
accept в интерфейсе DoubleConsumer
Параметры:
value — входное значение

combine

public void combine(DoubleSummaryStatistics other)
Объединяет состояние другого DoubleSummaryStatistics с этим объектом.
Параметры:
other — другой DoubleSummaryStatistics
Выбрасывает:
NullPointerException — если other равен null

getCount

public final long getCount()
Возвращает количество записанных значений.
Возвращает:
количество значений

getSum

public final double getSum()
Возвращает сумму записанных значений или ноль, если значения не записывались.

Значение суммы с плавающей точкой зависит как от входных значений, так и от порядка операций сложения. Порядок операций сложения в этом методе намеренно не определен, чтобы обеспечить гибкость реализации для повышения скорости и точности вычисленного результата. В частности, этот метод может использовать суммирование с компенсацией или другой метод для уменьшения границы погрешности численной суммы по сравнению с простым суммированием значений double. Из-за неопределенного порядка операций и возможности использования различных схем суммирования результат этого метода для одних и тех же входных значений может различаться.

К вычислению суммы, не являющейся конечной, могут привести различные условия. Это может произойти, даже если все суммируемые записанные значения конечны. Если какое-либо записанное значение не является конечным, сумма также не будет конечной:

  • Если какое-либо записанное значение — NaN, итоговая сумма будет NaN.
  • Если записанные значения содержат одну или несколько бесконечностей, сумма будет бесконечной или NaN.
    • Если записанные значения содержат бесконечности противоположных знаков, сумма будет NaN.
    • Если записанные значения содержат бесконечности одного знака, а промежуточная сумма переполняется до бесконечности противоположного знака, сумма может быть NaN.
Промежуточные суммы конечных значений могут переполниться и стать бесконечностями противоположных знаков; в таком случае итоговая сумма будет NaN, даже если все записанные значения конечны. Если все записанные значения равны нулю, знак нуля в итоговой сумме не гарантируется.
Примечание к API:
Сортировка значений по возрастанию абсолютной величины обычно дает более точные результаты.
Возвращает:
сумму значений или ноль, если значений нет

getMin

public final double getMin()
Возвращает минимальное записанное значение, Double.NaN, если какое-либо записанное значение было NaN, или Double.POSITIVE_INFINITY, если значения не записывались. В отличие от операторов численного сравнения, этот метод считает отрицательный ноль строго меньше положительного нуля.
Возвращает:
минимальное записанное значение, Double.NaN, если какое-либо записанное значение было NaN, или Double.POSITIVE_INFINITY, если значения не записывались

getMax

public final double getMax()
Возвращает максимальное записанное значение, Double.NaN, если какое-либо записанное значение было NaN, или Double.NEGATIVE_INFINITY, если значения не записывались. В отличие от операторов численного сравнения, этот метод считает отрицательный ноль строго меньше положительного нуля.
Возвращает:
максимальное записанное значение, Double.NaN, если какое-либо записанное значение было NaN, или Double.NEGATIVE_INFINITY, если значения не записывались

getAverage

public final double getAverage()
Возвращает среднее арифметическое записанных значений или ноль, если значения не записывались.

Вычисленное среднее может различаться численно и иметь те же особенности обработки особых случаев, что и при вычислении суммы; подробности см. в описании getSum().

Примечание к API:
Сортировка значений по возрастанию абсолютной величины обычно дает более точные результаты.
Возвращает:
среднее арифметическое значений или ноль, если значений нет

toString

public String toString()
Возвращает непустое строковое представление этого объекта, пригодное для отладки. Точный формат представления не определен и может различаться в разных реализациях и версиях.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, которая содержит более подробные описания для разработчиков, включая обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/DoubleSummaryStatistics.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API