【发布时间】:2017-07-14 21:46:18
【问题描述】:
我对在 java-08 中使用 Stream API 的性能增强有一些疑问。 以下是java-06中的代码。
int sum = 0;
for (int x : numbers) {
sum += x;
}
这是java-8中的代码。
int sum = numbers.stream().reduce(0, (x,y) -> x+y);
或:
int sum = numbers.stream().reduce(0, Integer::sum);
问题:- 虽然两个代码中的行数相同,但内部操作是如何进行的? 这就是它转换为流和并行处理的方式。
【问题讨论】:
-
查看oracle doc docs.oracle.com/javase/8/docs/api/java/util/stream/…中的减分操作
-
那方式太宽泛了……而且可能很多很好的搜索已经包含了你的答案
-
@Eugene 如果你觉得你的回答很无聊,那么请给出一些有趣的解决方案。
-
这不是“无聊”,而是太宽泛。这些是完全不同的事情
-
好的。给我一些链接或文档参考,我可以在其中找到我的答案。我知道这有点无聊,但对于建筑师来说这是具有挑战性的问题