Цель: практиковать метод .reduce . < /p>
Есть 3 класса: < /p>
Код: Выделить всё
Category enum (a, b, c, d), [*]Product (String name, BigDecimal price, BigDecimal discount, Category category)- OrderPosition - Количество продукта
Код ниже < /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