Trong Java 8, nếu tôi có một danh sách các đối tượng như thế này:Tổng hợp nhiều trường khác nhau trong danh sách đối tượng bằng cách sử dụng luồng api?
MyObject
double a;
double b;
double c;
Tôi muốn nhận được tổng số của mỗi người trong các lĩnh vực trong danh sách các đối tượng. Một cách tôi có thể thực hiện, như sau:
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);
Nhưng có cách nào để kết hợp điều này vào một danh sách đối tượng sử dụng luồng api không? Nếu tôi chỉ viết một efficent cho/Vòng lặp while (xem dưới đây) và bằng tay thêm lên 3 tổng số, mà dường như nhiều hơn sau đó 3 dòng trên mã)
for (MyObject obj: myListOfObjects) {
totalA += obj.getA();
totalB += obj.getB();
totalC += obj.getC();
}
Cảm ơn
Xin cảm ơn Jaroslaw, đó chính xác là những gì tôi đang tìm kiếm – Pat