- java.lang.Object
-
- java.util.DoubleSummaryStatistics
-
- All Implemented Interfaces:
-
DoubleConsumer
public class DoubleSummaryStatistics extends Object implements DoubleConsumer
统计数据的收集状态,如count,min,max,sum和average。这个课程旨在与(但不需要) streams一起工作 。 例如,您可以使用以下方式计算双精度流的汇总统计信息:
DoubleSummaryStatistics stats = doubleStream.collect(DoubleSummaryStatistics::new, DoubleSummaryStatistics::accept, DoubleSummaryStatistics::combine);
DoubleSummaryStatistics
可用作reduction目标为stream 。 例如:DoubleSummaryStatistics stats = people.stream() .collect(Collectors.summarizingDouble(Person::getWeight));
- Implementation Note:
-
这个实现不是线程安全的。
然而,并行流中使用
Collectors.summarizingDouble()
是安全的,因为Stream.collect()
的并行实现为安全和高效的并行执行提供了必要的分区,隔离和结果合并。 - 从以下版本开始:
- 1.8
-
-
构造方法摘要
构造方法 Constructor 描述 DoubleSummaryStatistics()
用零计数,零和,Double.POSITIVE_INFINITY
分钟,Double.NEGATIVE_INFINITY
最大和零平均值构造一个空实例。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 void
accept(double value)
在摘要信息中记录另一个值。void
combine(DoubleSummaryStatistics other)
将另一个DoubleSummaryStatistics
的状态合并到一个。double
getAverage()
返回记录的值的算术平均值,如果没有记录值,则返回零。long
getCount()
返回记录的值的计数。double
getMax()
如果任何记录值为NaN,则返回最大记录值Double.NaN
如果没有记录值,则返回Double.NEGATIVE_INFINITY
。double
getMin()
如果任何记录值为NaN,则返回最低记录值Double.NaN
如果没有记录值,则返回Double.POSITIVE_INFINITY
。double
getSum()
返回记录的值的总和,如果没有记录值,则返回零。String
toString()
返回适用于调试的此对象的非空字符串表示形式。-
Methods inherited from interface java.util.function.DoubleConsumer
andThen
-
-
-
-
方法详细信息
-
accept
public void accept(double value)
在摘要信息中记录另一个值。- Specified by:
-
accept
在接口DoubleConsumer
- 参数
-
value
- 输入值
-
combine
public void combine(DoubleSummaryStatistics other)
将另一个DoubleSummaryStatistics
的状态合并到这一个中。- 参数
-
other
- 另一个DoubleSummaryStatistics
- 异常
-
NullPointerException
- 如果other
为空
-
getCount
public final long getCount()
返回记录的值的计数。- 结果
- 数值计数
-
getSum
public final double getSum()
返回记录的值的总和,如果没有记录值,则返回零。浮点和的值是输入值以及加法运算顺序的函数。 该方法的加法运算顺序有意未被定义为允许实现灵活性来提高计算结果的速度和准确性。 特别地,可以使用补偿求和或其他技术来实现该方法,以减少与
double
值的简单求和相比的数字和中的误差界限。 由于未指定的操作顺序和使用不同求和方案的可能性,该方法的输出可能会在相同的输入值上变化。各种条件可导致计算非有限和。 即使所有记录的值相加都可能发生这种情况。 如果任何记录的值是非有限的,则总和将是非限定的:
- 如果任何记录的值是NaN,则最终总和将为NaN。
- 如果记录的值包含一个或多个无穷大,则总和将为无限或NaN。
- 如果记录值含有相反符号的无穷大,则总和将为NaN。
- 如果记录的值包含一个符号的无穷大,并且中间和溢出到相反符号的无穷大,则该和可以是NaN。
- API Note:
- 按绝对数量增加排列的数值往往会产生更准确的结果。
- 结果
- 值的总和,否则为零
-
getMin
public final double getMin()
如果任何记录值为NaN,则返回最小记录值Double.NaN
如果没有记录值,则返回Double.POSITIVE_INFINITY
。 与数值比较运算符不同,该方法认为负零严格小于正零。- 结果
-
最低记录值
Double.NaN
如果任何记录值为NaN或Double.POSITIVE_INFINITY
如果没有记录值
-
getMax
public final double getMax()
如果任何记录值为NaN,则返回最大记录值Double.NaN
如果没有记录值,则返回Double.NEGATIVE_INFINITY
。 与数值比较运算符不同,该方法认为负零严格小于正零。- 结果
-
最高记录值为
Double.NaN
如果任何记录值为NaN或Double.NEGATIVE_INFINITY
如果没有记录值
-
getAverage
public final double getAverage()
返回记录的值的算术平均值,如果没有记录值,则返回零。计算的平均值可以数值变化,并具有计算总和的特殊情况行为; 详见
getSum()
。- API Note:
- 按绝对数量增加排列的数值往往会产生更准确的结果。
- 结果
- 值的算术平均值,如果没有值则为零
-
-