Java 为什么map()函数中的表达式仅在使用count()函数时执行?
当我使用Java 为什么map()函数中的表达式仅在使用count()函数时执行?,java,java-8,java-stream,Java,Java 8,Java Stream,当我使用count()。从count()函数文档中,我了解到它返回给定流中的元素计数 public class Start { public static int test(int input) { System.out.println("inside processRecord"); return input; } public static void main(String[] args) throws InterruptedExcep
count()。从count()
函数文档中,我了解到它返回给定流中的元素计数
public class Start {
public static int test(int input) {
System.out.println("inside processRecord");
return input;
}
public static void main(String[] args) throws InterruptedException {
List<Integer> data = Arrays.asList(1,2,3);
data.parallelStream().map(Start::test).count();
}
}
公共类启动{
公共静态int测试(int输入){
System.out.println(“内部进程记录”);
返回输入;
}
公共静态void main(字符串[]args)引发InterruptedException{
列表数据=数组.asList(1,2,3);
data.parallelStream().map(Start::test).count();
}
}
因为计数
是一个终端操作,只有当终端操作存在时才调用/执行流;据说他们很懒
请注意,在java-9及以上版本中,您的示例不会以任何方式打印map
中的语句,因为您关心的只是数量,而map
有点无用 中间操作(如map)返回流,并由返回非流值的终端操作调用。阅读终端操作: