模块  java.base
软件包  java.util

Class 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)
      构造带指定一个非空的情况下 countminmaxsum
    • 方法摘要

      所有方法  实例方法 具体的方法 
      变量和类型 方法 描述
      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()
      返回适合调试的此对象的非空字符串表示形式。
    • 构造方法详细信息

      • DoubleSummaryStatistics

        public DoubleSummaryStatistics()
        构造一个空实例,零计数,零和, Double.POSITIVE_INFINITY分钟, Double.NEGATIVE_INFINITY最大值和零平均值。
      • DoubleSummaryStatistics

        public DoubleSummaryStatistics​(long count,
                                       double min,
                                       double max,
                                       double sum)
                                throws IllegalArgumentException
        构造带指定一个非空的情况下countminmaxsum

        如果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。
        有限值的中间和可能溢出到相反的有符号无穷大; 如果发生这种情况,即使记录的值都是有限的,最终的总和也将是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:
        通过增加绝对量值排序的值往往会产生更准确的结果。
        结果
        值的算术平均值,如果没有则为零
      • toString

        public String toString()
        返回适合调试的此对象的非空字符串表示形式。 确切的表示格式未指定,可能在实现和版本之间有所不同。
        重写:
        toString在类 Object
        结果
        对象的字符串表示形式。