tso*_*akp 14 java java-8 java-stream
任何人都可以指向官方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;
}
Run Code Online (Sandbox Code Playgroud)
以上目前将调用check方法4次.
是否有可能在JDK的当前版本或未来版本中,该check方法的执行次数多于或少于从List或任何其他标准Java API创建的流中的元素数量?
Eug*_*ene 15
这与流的源不相关,而是与流实现本身中完成的终端操作和优化有关.例如:
Stream.of(1,2,3,4)
.map(x -> x + 1)
.count();
Run Code Online (Sandbox Code Playgroud)
由于java-9,一次map不会执行.
要么:
someTreeSet.stream()
.sorted()
.findFirst();
Run Code Online (Sandbox Code Playgroud)
sorted可能根本没有执行,因为源是a TreeSet并且获取第一个元素是微不足道的,但如果这是在流API中实现的,则是一个不同的问题.
所以真正的答案在这里 - 这取决于,但我无法想象一个操作将被执行更多的源数据元素.
| 归档时间: |
|
| 查看次数: |
395 次 |
| 最近记录: |