Java流:流的第一个元素减去流的其余部分

时间:2016-09-02 13:24:03

标签: java lambda java-8 java-stream

我有一个整数数组,例如:

{ 30 , 2, 3, 4, 5}

是否可以创建一个lambda表达式(使用流)来区分数组的第一个元素(在我们的例子中为30)和数组(2+3+4+5 = 13)的其余部分之和,这样结果就是17?

2 个答案:

答案 0 :(得分:6)

对于您的用例,您可以尝试:

IntStream.of(array).reduce( (left,right) -> left - right).getAsInt()

答案 1 :(得分:4)

您可以计算数组的最后n-1个元素的总和,并从第一个元素中减去它:

int result = inputArray[0] - IntStream.of(inputArray).skip(1).sum();