這一行函數式編程代碼如下: 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
感謝您的努力。 –