W Javie 8, jeśli mam listę obiektów tak:Podsumowując wiele różnych pól na liście obiektów za pomocą api strumieni?
MyObject
double a;
double b;
double c;
chcę uzyskać sumy każdego z tych pól na liście obiektów. Jednym ze sposobów, mogę to zrobić, jest następujący:
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);
Ale jest tam z dala, aby połączyć to w jednym przejściu przez listę obiektów usng api strumieni? Gdybym tylko napisał do/while (patrz poniżej) i ręcznie sumowane przez 3 sumy, które wydają się bardziej skuteczny wówczas ponad 3 linie kodu)
for (MyObject obj: myListOfObjects) {
totalA += obj.getA();
totalB += obj.getB();
totalC += obj.getC();
}
Dzięki
Dzięki Jarosław, właśnie tego szukałem – Pat