Класс 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() |
Создаёт пустой экземпляр с нулевым количеством, нулевой суммой, |
DoubleSummaryStatistics(long count,
double min,
double max,
double sum) |
Создаёт непустой экземпляр со значением |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
accept(double value) |
Записывает другое значение в сводную информацию. |
void |
combine(DoubleSummaryStatistics other) |
Объединяет состояние другого |
double |
getAverage() |
Возвращает среднее арифметическое записанных значений или ноль, если значения не были записаны. |
long |
getCount() |
Возвращает количество записанных значений. |
double |
getMax() |
Возвращает максимальное записанное значение, |
double |
getMin() |
Возвращает минимальное записанное значение, |
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.
- Примечание 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()
Возвращает непустую строку представления этого объекта, подходящую для отладки. Точный формат представления не определён и может отличаться в разных реализациях и версиях.
© 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