Module java.base
Package java.util

Class IntSummaryStatistics

java.lang.Object
java.util.IntSummaryStatistics
所有已实现的接口:
IntConsumer

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

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

 
 IntSummaryStatistics stats = intStream.collect(IntSummaryStatistics::new,
                                                IntSummaryStatistics::accept,
                                                IntSummaryStatistics::combine);
 

IntSummaryStatistics可以用作的目标。例如:

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

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

自 JDK 版本:
1.8
  • Constructor Summary Link icon

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

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

    Methods declared in class java.lang.Object Link icon

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

    Methods declared in interface java.util.function.IntConsumer Link icon

    andThen
  • Constructor Details Link icon

    • IntSummaryStatistics Link icon

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

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

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

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

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

    • accept Link icon

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

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

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

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

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

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

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

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