如何循环槽嵌套对象并使用 lambda 和流验证一些计算



我需要循环槽嵌套对象来验证一些计算。 例如:

Category obj1 = new Category(0, 0, 10, null);
Category obj2 = new Category(2, 3, 6, obj1);
Category obj3 = new Category(2, 2, 4, obj1);

我需要检查以下是否存在父母:总和2(数量 * 价格 = 总计(总和 3(数量 * 价格 = 总计(和总和 2+总和3== 父级总计

前任:(2*2==4((3*3==6( 和 4+6 == 10

如何使用 lambda 和流做到这一点?

public class Category {
    private int qty;
    private int price;
    private int total;
    private Category rootCategory;
}

使用 Stream.of 创建Category流,然后filter对象 rootCategory 不为 null

int sum = Stream.of(obj1, obj2, obj3)
        .filter(o -> Objects.nonNull(o.getRootCategory()))
        .mapToInt(c -> c.getQty() * c.getPrice())
        .sum();

最新更新