java - 为什么 map() 函数中的表达式仅在使用 count() 函数时才执行?
问题描述
当我使用count()
函数“内部测试”消息按预期调用了 3 次但当我删除时,count(
函数调用test()
函数没有被调用。从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();
}
}
解决方案
因为count
是终端操作,只有在终端存在时才会调用/执行流;据说他们很懒...
请注意,在 java-9 及更高版本中,您的示例不会从map
任何一种方式打印这些语句,因为您只关心有多少并且map
有点无用......
推荐阅读
- c++ - gettext 不翻译静态成员变量
- visual-studio-code - 大写不会小写尾随字符
- azure - 在 Microsoft Bookings 中与任何可用的工作人员创建约会
- swift - 核心数据和 cookie 一样吗?
- r - R data.table 使用任何分割列集和标志
- wordpress - 用作主页的 Wordpress 自定义帖子类型类别
- javascript - 如果要分配给它的新值满足javascript中的预定义条件,如何创建一个只能更改其值的变量?
- wordpress - 将“成功”消息添加到 html 表单
- django - 从 django 中的连接表访问值
- r - 我错过了网络中其他节点的联系,我不确定为什么,任何帮助将不胜感激