Добавление BigDecimal в потоке с использованием метода уменьшенияJAVA

Программисты JAVA общаются здесь
Anonymous
 Добавление BigDecimal в потоке с использованием метода уменьшения

Сообщение Anonymous »

Задача: подсчитайте сумму цен на продукты из списка OrderPositions , которые имеют категорию A.
Цель: практиковать метод .reduce . < /p>
Есть 3 класса: < /p>
  • Код: Выделить всё

    Category enum (a, b, c, d),
    [*]Product (String name, BigDecimal price, BigDecimal discount, Category category)
  • OrderPosition - Количество продукта
Проблема: Class App1 Stream Op
Код ниже < /p>
public class Product {

private String name;
private BigDecimal price;
private BigDecimal discount;
private Category category;

public Product(String name, BigDecimal price, BigDecimal discount, Category category) {
this.name = name;
this.price = price;
this.discount = discount;
this.category = category;
}

public class OrderPosition {

private Product product;
private int quantity;

public OrderPosition() {
}

public OrderPosition(Product product, int quantity) {
this.product = product;
this.quantity = quantity;
}

public enum Category {
A, B, C, D
}

public class App1 {
public static void main(String[] args) {

List orderPositions = List.of(
new OrderPosition(new Product("Szynka", new BigDecimal("25"),BigDecimal.ZERO, Category.A), 10),
new OrderPosition(new Product("Ser", new BigDecimal("25.5"),BigDecimal.ZERO, Category.B), 20),
new OrderPosition(new Product("Chleb", new BigDecimal("15.5"),BigDecimal.ZERO, Category.C), 10),
new OrderPosition(new Product("Nabial", new BigDecimal("8"),BigDecimal.ZERO, Category.D), 2),
new OrderPosition(new Product("Kielbasa", new BigDecimal("15"),BigDecimal.ZERO, Category.A), 10),
new OrderPosition(new Product("Jajko", new BigDecimal("5"),BigDecimal.ZERO, Category.B), 5)
);

Optional op = orderPositions
.stream()
.filter(orderPosition -> orderPosition.getProduct().getCategory().equals(Category.A))
.reduce((x,y) -> x.add.y);


Подробнее здесь: https://stackoverflow.com/questions/639 ... uce-method

Вернуться в «JAVA»