Класс DoubleSummaryStatistics

Все реализованные интерфейсы:
DoubleConsumer
public class DoubleSummaryStatistics
extends Object
implements DoubleConsumer

Объект состояния для сбора статистики, такой как количество, минимум, максимум, сумма и среднее значение.

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

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 в этот.

double getAverage()

Возвращает среднее арифметическое записанных значений или ноль, если значения не были записаны.

long getCount()

Возвращает количество записанных значений.

double getMax()

Возвращает максимальное записанное значение, Double.NaN если какое-либо записанное значение было NaN или Double.NEGATIVE_INFINITY если значения не были записаны.

double getMin()

Возвращает минимальное записанное значение, Double.NaN если какое-либо записанное значение было NaN или Double.POSITIVE_INFINITY если значения не были записаны.

double getSum()

Возвращает сумму записанных значений или ноль, если значения не были записаны.

String toString()

Возвращает непустую строку представления этого объекта, подходящую для отладки.

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

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

Методы, объявленные в интерфейсе java.util.function.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.
Возможно, что промежуточные суммы конечных значений переполнятся до бесконечностей противоположного знака; в этом случае конечная сумма будет 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
Возвращает:
строковое представление объекта.

© 1993, 2020, 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/11/docs/api/java.base/java/util/DoubleSummaryStatistics.html

Spec-Zone .ru
спецификации, руководства, описания, API