Assuming slaContractList is a list of SlaContract objects and it has a SlaContract(numberOfCPUs, networkBandwith, memory) constructor SlaContract(numberOfCPUs, networkBandwith, memory) , you can:
SlaContract sumContract = slaContractList.stream() .reduce(new SlaContract(0, 0.0, 0.0), (sla1, sla2) -> { return new SlaContract(sla1.getNumberOfCPUs() + sla2.getNumberOfCPUs(), sla1.getworkBandwith() + sla2.getworkBandwith(), sla1.getMemory() + sla2.getMemory()); }); Double wnetwork = sumContract.getworkBandwith(); Double wMem = sumContract.getMemory(); Integer wCPU = sumContract.getNumberOfCPUs();
This is the same solution, but for a simple class:
Point sumPoint = pointsList.stream() .reduce(new Point(0, 0), (p1, p2) -> { return new Point(p1.x + p2.x, p1.y + p2.y); });
source share