这一行函数式编程代码如下: 2 * 3 + 4 * 3 + 6 * 3 + 8 * 3 + 10 * 3操作。了解Java 8/9函数式编程中的Map和Reduce(lambda表达式)。 map()和reduce()如何提高性能?
int sum = IntStream.rangeClosed(1,10) /* closed range */
.filter(x -> x%2 == 0) /* filter to even numbers in range */
.map(x -> x*3) /* map */
.sum(); /* actual sum operation happens */
System.out.println(sum); /* prints 90 */
我明白它在做什么。我想知道在内存分配方面发生了什么?我们可以有以下类似的旧操作替代方法。这很容易理解,但基于Lambda的代码更具表现力。
int sum=0;
for(int i=1; i<=10;i++) {
if(i%2 == 0) {
sum=sum+i*3;
}
}
System.out.println(sum); /* prints 90 */
FYI:我删除了'Java的9'标签,因为您使用流API是不特定于Java 9.我接着说:java'。 – Nicolai
感谢您的努力。 –