- java.lang.Object
-
- java.util.DoubleSummaryStatistics
-
- 实现的所有接口
-
DoubleConsumer
public class DoubleSummaryStatistics extends Object implements DoubleConsumer
用于收集统计数据(如计数,最小值,最大值,总和和平均值)的状态对象。此类旨在使用(但不要求) 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
-
-
构造方法摘要
构造方法 构造器 描述 DoubleSummaryStatistics()
构造一个空实例,零计数,零和,Double.POSITIVE_INFINITY
min,Double.NEGATIVE_INFINITY
max和零平均值。DoubleSummaryStatistics(long count, double min, double max, double sum)
构造带指定一个非空的情况下count
,min
,max
和sum
。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
accept(double value)
将另一个值记录到摘要信息中。void
combine(DoubleSummaryStatistics other)
将另一个DoubleSummaryStatistics
的状态合并到此状态中。double
getAverage()
返回记录值的算术平均值,如果没有记录值,则返回零。long
getCount()
返回记录的值的计数。double
getMax()
返回最大记录值,Double.NaN
,如果任何记录的值是NaN或Double.NEGATIVE_INFINITY
如果记录没有值。double
getMin()
返回最小记录值,如果任何记录值为NaN,则返回Double.NaN
如果未记录任何值,则返回Double.POSITIVE_INFINITY
。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 Note:
-
参数正确性的强制执行意味着由于源记录的值计数的算术溢出,从
DoubleSummaryStatistics
源实例获取的检索的记录值集可能不是该构造函数的合法参数集。 一致的参数条件不足以防止创建内部不一致的实例。 这种状态的一个示例是具有以下的实例:count
=min
=max
= 2,以及sum
= 0。 - 参数
-
count
- 值的计数 -
min
- 最小值 -
max
- 最大值 -
sum
- 所有值的总和 - 异常
-
IllegalArgumentException
- 如果参数不一致 - 从以下版本开始:
- 10
-
-
-
方法详细信息
-
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()
返回最小的入账价值,Double.NaN
,如果任何记录的值是NaN或Double.POSITIVE_INFINITY
如果记录没有值。 与数值比较运算符不同,此方法将负零视为严格小于正零。- 结果
-
最小记录值,
Double.NaN
如果任何记录值为NaN或Double.POSITIVE_INFINITY
如果没有记录值
-
getMax
public final double getMax()
返回最大记录值,如果任何记录值为NaN,则返回Double.NaN
如果未记录任何值,则返回Double.NEGATIVE_INFINITY
。 与数值比较运算符不同,此方法将负零视为严格小于正零。- 结果
-
最大记录值,如果有任何记录值为NaN
Double.NEGATIVE_INFINITY
如果没有记录值,Double.NaN
-
getAverage
public final double getAverage()
返回记录值的算术平均值,如果没有记录值,则返回零。计算的平均值可以在数值上变化,并具有计算总和的特殊情况行为; 有关详细信息,请参阅
getSum()
。- API Note:
- 通过增加绝对量值排序的值往往会产生更准确的结果。
- 结果
- 值的算术平均值,如果没有则为零
-
-