Java-8是否支持数组

时间:2017-11-16 06:33:38

标签: java java-8

Java-8提供了对数组求和的流,如下所示,流是否支持product?如果蒸汽不支持,是否有其他方法可以在不手动编写循环的情况下计算产品?

int[] a = {1, 2, 3, 4};
int sum = IntStream.of(a).sum();

2 个答案:

答案 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