【发布时间】:2015-05-19 09:12:28
【问题描述】:
这是一个例子: 代码A:
files.forEach(f -> {
//TODO
});
另外一个代码 B 可能会以这种方式使用:
files.stream().forEach(f -> { });
两者有什么区别,有stream(),没有stream()?
【问题讨论】:
-
这不太准确。两者在语义上都是等价的,但都不一定有这种实现。
-
代码 A 等于(文件 f : 文件)
-
当有一些中间操作(map、skip、concat、substream、distinct、filter、sorted、limit、peek ..)时,应该使用代码 B,否则它是次优的。谢谢大家!
标签: java lambda java-8 java-stream