相关疑难解决方法(0)

使用流api对对象列表中的多个不同字段求和?

在Java 8中,如果我有一个像这样的对象列表:

 MyObject
   double a;
   double b;
   double c;
Run Code Online (Sandbox Code Playgroud)

我想在对象列表中获取每个字段的总数.我能做到的一种方法如下:

double totalA = myListOfObjects.stream().map(e -> e.getA()).reduce(0.0, (x, y) -> x + y);
double totalB = myListOfObjects.stream().map(e -> e.getB()).reduce(0.0, (x, y) -> x + y);
double totalC = myListOfObjects.stream().map(e -> e.getC()).reduce(0.0, (x, y) -> x + y);  
Run Code Online (Sandbox Code Playgroud)

但是有没有把它组合成一个通过使用流api的对象列表?如果我只是写了一个for/while循环(见下文)并手动累加了3个总数,那么看起来比上面3行代码更有效率)

for (MyObject obj: myListOfObjects) {
    totalA += obj.getA();
    totalB += obj.getB();
    totalC += obj.getC();
}
Run Code Online (Sandbox Code Playgroud)

谢谢

java java-8

6
推荐指数
1
解决办法
1986
查看次数

标签 统计

java ×1

java-8 ×1