Java Stream Sum BigDecimal and Int on Object

tanut aran
Apr 21, 2024

Code sample

What we are trying to sum the BigDecimal and int on using Java stream

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class DecimalDemo {

public record Budget(
int amountInt,
BigDecimal amountDecimal) {
}

public static void main(String[] args) {
List<Budget> budgets = new ArrayList<Budget>();
budgets.add(new Budget(100, new BigDecimal("100.11")));
budgets.add(new Budget(200,new BigDecimal("200.22")));
budgets.add(new Budget(300,new BigDecimal("300.33")));

System.out.println("Start");
System.out.println(budgets);
int addInt = budgets.stream().mapToInt(Budget::amountInt).sum();
BigDecimal addBigDecimal = budgets.stream().map(Budget::amountDecimal).reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("Result");
System.out.println(addInt);
System.out.println(addBigDecimal);
}

}

Running

--

--