5

如果一个对象car有一个属性fuel,并且我有一个这些对象的列表cars:我怎样才能最好地计算getCarsFuel()列表中所有对象的这个属性的总和?

class CarStock {
    List<Car> cars;

    public int getCarsFuel() {
        int result = 0;     

        for (Car car : cars) {
            result += car.getFuel();
        }

        return result;
    }
}

class Car {
    int fuel;
}

有没有更好的方法,或者不能少做“样板”。我可以想象像sum(List<T> list, String property)->之类的东西sum(cars, "fuel")

4

1 回答 1

8

如果您可以使用lambdaj,您可以编写如下内容:

import static ch.lambdaj.Lambda.*;

List<Car> cars = ...;
int result = sumFrom(cars).getFuel();

有关如何使用 lambdaj 的更多示例,请参阅 lambdaj wiki 上的功能页面。

于 2012-11-21T22:32:00.190 回答