Java-8提供了对数组求和的流,如下所示,流是否支持product?如果蒸汽不支持,还有其他方法来计算产品而无需手动编写循环吗?
int[] a = {1, 2, 3, 4};
int sum = IntStream.of(a).sum();
Run Code Online (Sandbox Code Playgroud)
用reduce方法试试。像下面这样:
int product = IntStream.of(a)
.reduce((a,b) -> a*b)
.orElse(1); // fallback value if stream is empty
Run Code Online (Sandbox Code Playgroud)
sum和其他人只是特定reduce电话的捷径.
sum:返回此流中元素的总和.这是减少的特殊情况,相当于:
Run Code Online (Sandbox Code Playgroud)return reduce(0, Integer::sum);Reduce:使用提供的标识值和关联累加函数,对此流的元素执行减少,并返回减少的值.
然后你可以这样写:
int[] a = {1, 2, 3, 4};
int prod = IntStream.of(a).reduce(1,(x,y)->x*y);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |