2012-11-21 11 views
5

car bir nesnenin fuel özelliği varsa ve bu nesnelerin bir listesini cars aldım: Listedeki tüm nesnelerin toplamını getCarsFuel() en iyi nasıl hesaplayabilirim?Nesnelerin toplamının toplamı nasıl en iyi hesaplanır?

class CarStock { 
    List<Car> cars; 

    public int getCarsFuel() { 
     int result = 0;  

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

     return result; 
    } 
} 

class Car { 
    int fuel; 
} 

Daha iyi yollar var mı, yoksa daha az "boilerplate" yapamaz mı? sum(List<T> list, String property) ->sum(cars, "fuel") gibi bir şey görüntüleyebilir miyim? lambdaj wiki üzerinde Features sayfasına bakın lambdaj nasıl kullanılacağına dair bazı Daha fazla örnek için

import static ch.lambdaj.Lambda.*; 

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

: Eğer lambdaj kullanabiliyorsa

+1

Önerileriniz gibi yardımcı bir yöntem yazabilirsiniz. Ancak, bunu Java'da yapmak için yerleşik bir yol yoktur. –

+2

@SamIam: C# kullanarak her zaman kabul edilebilir bir çözüm değildir, Groovy için kolayca gidebilir ve M $ unutursunuz. – Jack

cevap

8

, gibi bir şey yazabilirsiniz.

+0

Tam olarak aradığım şey bu! – membersound

+1

Ancak, bu yöntemde brüt etkinlik eksikliği vardır. Lütfen http://stackoverflow.com/questions/25343897/gross-lack-of-efficacy-in-using-lambdaj-over-iteration adresine bakın. –