我正在探索和学习Java中的lambda表达式。我有以下代码,可以简单地计算数组的sum
并返回和
long[] temp = new long[n]; // assume that temp array has values
long tempVarible = 0L;
long result = 0L;
for (int i = 0; i < n; i++) {
tempVarible = tempVarible + temp[i];
if (tempVarible > result) {
result = tempVarible;
}
}
return result;
现在我想使用集合API或也许使用Arrays实用程序将以下代码转换为带有lambda的干净单行代码,以便计算“结果”变量的值。
long[] temp = new long[n];
Stream.of(temp) // then next ..?
答案 0 :(得分:0)
您可以简单地使用LongStream
,如果数组为空,则会得到0
或其他sum
return LongStream.of(temp).sum()
或使用reduce
long result = LongStream.of(temp).reduce((a,b)->a+b).getAsLong();