如何使用Java 8在长数组上执行以下操作

时间:2019-10-08 17:18:56

标签: java lambda

我正在探索和学习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 ..?

1 个答案:

答案 0 :(得分:0)

您可以简单地使用LongStream,如果数组为空,则会得到0或其他sum

return LongStream.of(temp).sum()

或使用reduce

long result = LongStream.of(temp).reduce((a,b)->a+b).getAsLong();