Module java.base
Package java.util

Class 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()的并行实现提供了必要的分区、隔离和结果合并,以实现安全和高效的并行执行。

此实现不检查计数的溢出。

自 JDK 版本:
1.8
  • Constructor Summary

    Constructors
    Constructor
    Description
    使用零计数、零总和、Double.POSITIVE_INFINITY最小值、Double.NEGATIVE_INFINITY最大值和零平均值构造一个空实例。
    DoubleSummaryStatistics(long count, double min, double max, double sum)
    使用指定的计数最小值最大值总和构造一个非空实例。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    accept(double value)
    记录另一个值到摘要信息中。
    void
    将另一个DoubleSummaryStatistics的状态合并到此实例中。
    final double
    返回记录的值的算术平均值,如果没有记录值则返回零。
    final long
    返回记录的值的计数。
    final double
    getMax()
    返回记录的最大值,如果任何记录的值为 NaN,则返回Double.NaN,如果没有记录值,则返回Double.NEGATIVE_INFINITY
    final double
    getMin()
    返回记录的最小值,如果任何记录的值为 NaN,则返回Double.NaN,如果没有记录值,则返回Double.POSITIVE_INFINITY
    final double
    getSum()
    返回记录的值的总和,如果没有记录值则返回零。
    返回适用于调试的此对象的非空字符串表示形式。

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods declared in interface java.util.function.DoubleConsumer

    andThen
  • Constructor Details

    • DoubleSummaryStatistics

      public DoubleSummaryStatistics()
      使用零计数、零总和、Double.POSITIVE_INFINITY最小值、Double.NEGATIVE_INFINITY最大值和零平均值构造一个空实例。
    • DoubleSummaryStatistics

      public DoubleSummaryStatistics(long count, double min, double max, double sum) throws IllegalArgumentException
      使用指定的计数最小值最大值总和构造一个非空实例。

      如果计数为零,则忽略剩余参数并构造一个空实例。

      如果参数不一致,则抛出IllegalArgumentException。必要的一致参数条件为:

      • 计数 >= 0
      • (最小值 <= 最大值 && !isNaN(总和)) || (isNaN(最小值) && isNaN(最大值) && isNaN(总和))
      API 注意事项:
      参数正确性的强制执行意味着从DoubleSummaryStatistics源实例获取的记录值集合可能不是此构造函数的合法参数集,因为源记录值的计数可能会发生算术溢出。一致的参数条件不足以防止创建内部不一致的实例。一个这样状态的示例是:计数 = 2,最小值 = 1,最大值 = 2,总和 = 0。
      参数:
      计数 - 值的计数
      最小值 - 最小值
      最大值 - 最大值
      总和 - 所有值的总和
      抛出:
      IllegalArgumentException - 如果参数不一致
      自 JDK 版本:
      10
  • Method Details

    • 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()
      返回记录的值的总和,如果没有记录值则返回零。
      API 注意事项:
      按绝对值递增排序的值往往会产生更准确的结果。
      返回:
      值的总和,如果没有则返回零
    • getMin

      public final double getMin()
      返回记录的最小值,如果任何记录的值为 NaN,则返回Double.NaN,如果没有记录值,则返回Double.POSITIVE_INFINITY。与数值比较运算符不同,此方法认为负零严格小于正零。
      返回:
      最小记录的值,如果任何记录的值为 NaN,则返回Double.NaN,如果没有记录值,则返回Double.POSITIVE_INFINITY
    • getMax

      public final double getMax()
      返回记录的最大值,如果任何记录的值为 NaN,则返回Double.NaN,如果没有记录值,则返回Double.NEGATIVE_INFINITY。与数值比较运算符不同,此方法认为负零严格小于正零。
      返回:
      最大记录的值,如果任何记录的值为 NaN,则返回Double.NaN,如果没有记录值,则返回Double.NEGATIVE_INFINITY
    • getAverage

      public final double getAverage()
      返回记录的值的算术平均值,如果没有记录值则返回零。

      计算的平均值在数值上可能会有所变化,并且具有与计算总和相同的特殊情况行为;有关详细信息,请参见getSum()

      API 注意事项:
      按绝对值递增排序的值往往会产生更准确的结果。
      返回:
      值的算术平均值,如果没有则返回零
    • toString

      public String toString()
      返回适用于调试的此对象的非空字符串表示形式。确切的呈现格式未指定,可能会在不同实现和版本之间有所变化。
      覆盖:
      toString 在类 Object
      返回:
      对象的字符串表示形式。