Module  java.base
软件包  java.util

Class 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​()
      返回适用于调试的此对象的非空字符串表示形式。
    • 构造方法详细信息

      • DoubleSummaryStatistics

        public DoubleSummaryStatistics​()
        构造一个零计数,零和, Double.POSITIVE_INFINITY分钟, Double.NEGATIVE_INFINITY最大和零平均值的空实例。
    • 方法详细信息

      • 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​()
        如果任何记录值为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:
        按绝对数量增加排列的数值往往会产生更准确的结果。
        结果
        值的算术平均值,如果没有值则为零
      • toString

        public String toString​()
        返回适用于调试的此对象的非空字符串表示形式。 准确的表示格式是未指定的,可能会在实现和版本之间变化。
        重写:
        toStringObject
        结果
        对象的字符串表示形式。