long count()
功能就是计算Stream中元素的数量。看例子:
void stream_count() {
// example 1
List<String> list = List.of("I","love","you","and","you","love","me");
long co = list.stream().count();
System.out.println(co);
// example 2
long co2 = list.stream().mapToLong(a -> 1L).sum();
System.out.println(co2);
// example 3
long co3 = list.stream().peek(System.out::print).count();
System.out.println(co2);
}
执行结果:
7
7
7
上面代码中例子1是count方法示例,例子2、3是官方文档上的示例,其作用都是一样。mapToLong和peek方法的作用和使用方法在文档后面再描述。
我们关注一下这行代码:
long co3 = list.stream().peek(System.out::print).count();
运行结果是7,没有打印流中元素。为什么呢?
原来count方法对已知元素数量的原流不会执行例如peek这样的中间操作。