Как сложить List BigDecimal и добавить результат в одну строку
Сюда добавляю элементы List<BigDecimal> sumSecond = new ArrayList<>();
Здесь вызываем работника employeeList.get(i), у которого возвращаем заработную плату getSalary(), а тут прибавляем её к sumSecond, а затем необходимо сохранить это число в наш лист.
Проблема в том, что прибавлять BigDecimal к BigDecimal нужно через .add(), добавлять элементы в List тоже нужно через .add . В связи с чем вот эта строка не работает полностью
sumSecond.add(sumSecond.add(employeeList.get(i).getSalary())); Как мне ещё производить это действие, если хочу в одну строку.
Ответы (1 шт):
Добавлять все равно придется руками так как результат работы List.add это boolean.
Но есть выход по типу такого
BigDecimalList.java
package test;
import java.math.BigDecimal;
import java.util.ArrayList;
public class BigDecimalList extends ArrayList<BigDecimal> {
public BigDecimalList addItem(BigDecimal item) {
this.add(item);
return this;
}
}
App.java
package test;
import java.io.IOException;
import java.math.*;
import java.util.Optional;
public class App {
public static void main(String[] args) throws IOException {
Optional<BigDecimal> sum =
new BigDecimalList()
.addItem(BigDecimal.valueOf(1321654.21))
.addItem(BigDecimal.valueOf(334.21))
.addItem(BigDecimal.valueOf(12134.21))
.addItem(BigDecimal.valueOf(5656.21))
.stream().reduce((a, b) -> a.add(b));
System.out.println(sum.isPresent() ? sum.get().doubleValue() : 0);
}
}