java.lang.Object
java.util.LongSummaryStatistics
- 所有已实现的接口:
-
IntConsumer
,LongConsumer
用于收集统计信息(如计数、最小值、最大值、总和和平均值)的状态对象。
此类设计用于与(尽管不需要)流一起使用。例如,您可以使用以下代码计算长整型流的摘要统计信息:
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
ConstructorDescription使用零计数、零总和、Long.MAX_VALUE
最小值、Long.MIN_VALUE
最大值和零平均值构造一个空实例。LongSummaryStatistics
(long count, long min, long max, long sum) 使用指定的计数
、最小值
、最大值
和总和
构造一个非空实例。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(int value) 记录一个新的int
值到摘要信息中。void
accept
(long value) 记录一个新的long
值到摘要信息中。void
combine
(LongSummaryStatistics other) 将另一个LongSummaryStatistics
的状态合并到此实例中。final double
返回记录的值的算术平均值,如果没有记录值则返回零。final long
getCount()
返回记录的值的计数。final long
getMax()
返回记录的最大值,如果没有记录值则返回Long.MIN_VALUE
。final long
getMin()
返回记录的最小值,如果没有记录值则返回Long.MAX_VALUE
。final long
getSum()
返回记录的总和,如果没有记录值则返回零。toString()
返回适用于调试的此对象的非空字符串表示形式。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
将另一个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
返回适用于调试的此对象的非空字符串表示形式。确切的呈现格式未指定,可能会在不同实现和版本之间有所变化。
-