Класс 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.
- Если записанные значения содержат бесконечности одного знака, а промежуточная сумма переполняется в бесконечность противоположного знака, сумма может быть 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
© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/DoubleSummaryStatistics.html