【发布时间】:2016-02-13 19:07:48
【问题描述】:
我开始学习 Java 8 的 Lambda 表达式,并编写了以下程序来获取列表中所有数字的总和:
import java.util.Arrays;
import java.util.List;
public class MainClass {
public static void main(String[] args) {
List<Integer> number = Arrays.asList(1, 2, 3, 4, 5);
System.out.println(number.stream().reduce((c,e) -> {
return c + e;
}));
}
}
我期待的输出是:
15
但我得到了:
可选[15]
Java 版本:1.8.0_45
- 请解释一下Optional[]在输出中是什么意思?
- 它在 Java 8 中有什么意义吗?
【问题讨论】:
-
请注意,您可以这样做
int sum = number.stream().mapToInt(i -> i).sum(); -
@AlexisC。与我上面使用的代码相比,使用这行代码有什么优势。谢谢。
-
每次完成总和时无需拆箱/装箱。