Module java.base
Package java.util

Class LongSummaryStatistics

java.lang.Object
java.util.LongSummaryStatistics
所有已实现的接口:
IntConsumer, LongConsumer

public class LongSummaryStatistics extends Object implements LongConsumer, IntConsumer
用于收集统计信息(如计数、最小值、最大值、总和和平均值)的状态对象。

此类设计用于与(尽管不需要)一起使用。例如,您可以使用以下代码计算长整型流的摘要统计信息:

 
 LongSummaryStatistics stats = longStream.collect(LongSummaryStatistics::new,
                                                  LongSummaryStatistics::accept,
                                                  LongSummaryStatistics::combine);
 

LongSummaryStatistics可用作的归约目标。例如:

 
 LongSummaryStatistics stats = people.stream()
                                     .collect(Collectors.summarizingLong(Person::getAge));
这将在单次遍历中计算人数以及其年龄的最小值、最大值、总和和平均值。
实现注意事项:
此实现不是线程安全的。但是,在并行流上使用Collectors.summarizingLong()是安全的,因为Stream.collect()的并行实现提供了必要的分区、隔离和结果合并,以实现安全和高效的并行执行。

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

自 JDK 版本:
1.8
  • Constructor Summary

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

    Modifier and Type
    Method
    Description
    void
    accept(int value)
    记录一个新的int值到摘要信息中。
    void
    accept(long value)
    记录一个新的long值到摘要信息中。
    void
    将另一个LongSummaryStatistics的状态合并到此实例中。
    final double
    返回记录的值的算术平均值,如果没有记录值则返回零。
    final long
    返回记录的值的计数。
    final long
    getMax()
    返回记录的最大值,如果没有记录值则返回Long.MIN_VALUE
    final long
    getMin()
    返回记录的最小值,如果没有记录值则返回Long.MAX_VALUE
    final long
    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.IntConsumer

    andThen

    Methods declared in interface java.util.function.LongConsumer

    andThen
  • Constructor Details

    • LongSummaryStatistics

      public LongSummaryStatistics()
      使用零计数、零总和、Long.MAX_VALUE最小值、Long.MIN_VALUE最大值和零平均值构造一个空实例。
    • LongSummaryStatistics

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

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

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

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

    • accept

      public void accept(int value)
      记录一个新的int值到摘要信息中。
      指定者:
      accept 在接口 IntConsumer
      参数:
      value - 输入值
    • accept

      public void accept(long value)
      记录一个新的long值到摘要信息中。
      指定者:
      accept 在接口 LongConsumer
      参数:
      value - 输入值
    • combine

      public void combine(LongSummaryStatistics other)
      将另一个LongSummaryStatistics的状态合并到此实例中。
      参数:
      other - 另一个LongSummaryStatistics
      抛出:
      NullPointerException - 如果other为null
    • getCount

      public final long getCount()
      返回记录的值的计数。
      返回:
      值的计数
    • getSum

      public final long getSum()
      返回记录的值的总和,如果没有记录值则返回零。
      返回:
      值的总和,如果没有则返回零
    • getMin

      public final long getMin()
      返回记录的最小值,如果没有记录值则返回Long.MAX_VALUE
      返回:
      最小值,如果没有则返回Long.MAX_VALUE
    • getMax

      public final long getMax()
      返回记录的最大值,如果没有记录值则返回Long.MIN_VALUE
      返回:
      最大值,如果没有则返回Long.MIN_VALUE
    • getAverage

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

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