有没有官方的Java文档可以描述Stream将为每个元素调用多少次“非干扰和无状态”的中间操作。
例如:
Arrays.asList("1", "2", "3", "4").stream()
.filter(s -> check(s))
.forEach(s -> System.out.println(s));
public boolean check(Object o) {
return true;
}
上述代码将会调用 check
方法4次。
在当前或未来版本的JDK中,从List或其他标准Java API创建的流可能比其元素数量执行 check
方法更多或更少次,这是否有可能?
filter
谓词应该是无状态的。” - Radiodef