减少一组lambda

时间:2017-01-03 16:17:30

标签: java lambda java-8 java-stream reduce

我有一个lambdas的载体:

public interface MyLambda {
    int execute(Object lambdaParams);
}

Vector<MyLambda> lambdas = new Vector<>();
lambdas.add((params) -> {return 1});
lambdas.add((params) -> {return 2});
lambdas.add((params) -> {return 3});

我想用相同的参数调用所有lambdas,并总结结果。我尝试了以下几点:

int sum = lambdas.parallelStream().collect(Math::addExact);

或:

int sum = lambdas.parallelStream().reduce(0, Math::addExact);

但自然它没有用。我使用了更传统的方法:

  int sum = 0;
  for (MyLambda lambda : lambdas) {
     sum += lambda.execute(myParams);
  }

它有效,但感觉就像是错误的方式。

如何执行所有lambdas并对结果求和?

0 个答案:

没有答案