Spec-Zone.ru › OpenJDK 21

Класс DoubleSummaryStatistics

java.lang.Object
java.util.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 с этим.
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()
Возвращает непустое строковое представление этого объекта, подходящее для отладки.

Методы, объявленные в классе 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, 2023, 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/21/docs/api/java.base/java/util/DoubleSummaryStatistics.html

Spec-Zone.ru

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