Как суммировать BigDecimal с помощью Stream
[Как суммировать BigDecimal с помощью Stream]
Начиная с Java 8, мы можем суммировать BigDecimal с помощью метода Stream.reduce().
Как суммировать BigDecimal
Сначала создадим список, состоящий из элементов BigDecimal:
List<BigDecimal> numbers = new ArrayList<>(); numbers.add(BigDecimal.valueOf(10.1)); numbers.add(BigDecimal.valueOf(89.9)); numbers.add(BigDecimal.valueOf(50.5));
Затем получим из списка стрим его элементов и воспользуемся методом Stream.reduce для того, чтобы суммировать все элементы стрима:
BigDecimal total = numbers.stream().reduce(BigDecimal.ZERO, BigDecimal::add); System.out.println(total); // 150.5
Метод Stream.reduce принимает два аргумента – начальное значение и функцию-аккумулятор, которая складывает два числа (предыдущее значение аккумулятора и следующий элемент в стриме).
Исходный код
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
public class SumBigDecimalStream {
public static void main(String[] args) {
List<BigDecimal> numbers = new ArrayList<>();
numbers.add(BigDecimal.valueOf(10.1));
numbers.add(BigDecimal.valueOf(89.9));
numbers.add(BigDecimal.valueOf(50.5));
BigDecimal total = numbers.stream().reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println(total); // 150.5
}
}
Заключение
С помощью метода Stream.reduce() довольно просто суммировать все BigDecimal в стриме.
Как суммировать BigDecimal с помощью Stream
Комментарии 0