Collectors.counting()
Java 8
流的新类java.util.stream.Collectors
实现了java.util.stream.Collector
接口,同时又提供了大量的方法对流 (stream
) 的元素执行map
and
reduce
操作,或者统计操作。
Collectors.counting()
用于统计流中元素的个数。
可以发现,返回值是Long类型
- 侧面可以看出,里面为什么会高效的统计出如此庞大的数据?
- 使用的是什么原理?
- 还是用了什么算法?
- 值得深思与深究……
collectingExample测试
@Test
public void collectingExample() {
List<Integer> list = Arrays.asList(1, 2, 3, 4);
Long result = list.stream().collect(Collectors.counting());
System.out.println(result);
}
collectingExample结果
4
一点唠叨:
- 相对于
Collectors.averagingDouble()
来说,方法体只执行一次。 - 相对于
Collectors.averagingDouble()
来说,方法体做出了优化 - 相对于
Collectors.averagingDouble()
来说,这个没有坑 - ……
- 为什么这么提
Collectors.averagingDouble()
,最好看一下—> averagingDouble - 因为
Collectors.averagingDouble()
有坑,有坑,有坑