Мне любопытно, как суммировать несколько переменных в потоке java8.java8 stream sum multiple
Integer wCPU = 0;
Double wnetwork = 0.0;
Double wMem = 0.0;
this.slaContractList.forEach(sla -> {
wCPU += sla.getNumberOfCPUs();
wnetwork += sla.getNetworkBandwith();
wMem += sla.getMemory();
});
Однако это не скомпилируется, так как переменная в выражении лямбда должна быть окончательной.
Вы хотите пользовательский коллектор, см на http://stackoverflow.com/questions/37187541/java-8-stream-add-elements-to-list-and-sum/37188002#37188002 – Tunaki
Каковы недостатки взлома? у него, похоже, меньше строк кода, что приятно. –
Вы сказали это ... это взломать. Запустите его параллельно, скорее всего, он не выдает правильный вывод, потому что '+ =', как '++', [не является атомной операцией] (http://stackoverflow.com/questions/25168062/why-is-i -на-атомный). – Tunaki