Класс 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 |
Создаёт непустой экземпляр со значениями count, min, max, и sum. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
accept |
Записывает другое значение в сводную информацию. |
void |
combine |
Объединяет состояние другого 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.
- Примечание 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, 2021, 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/17/docs/api/java.base/java/util/DoubleSummaryStatistics.html