Java-8提供了对数组求和的流,如下所示,流是否支持product
?如果蒸汽不支持,是否有其他方法可以在不手动编写循环的情况下计算产品?
int[] a = {1, 2, 3, 4};
int sum = IntStream.of(a).sum();
答案 0 :(得分:5)
sum
和其他人只是特定reduce
来电的快捷方式。
sum :返回此流中元素的总和。这是一个特例 减少并相当于:
return reduce(0, Integer::sum);
Reduce :使用。删除此流的元素 提供了身份价值和联想积累功能,以及 返回减少的值。
然后你可以这样写:
int[] a = {1, 2, 3, 4};
int prod = IntStream.of(a).reduce(1,(x,y)->x*y);
答案 1 :(得分:3)
使用reduce
方法尝试。如下所示:
int product = IntStream.of(a)
.reduce((a,b) -> a*b)
.orElse(0); // fallback value if stream is empty