首页 > 解决方案 > 在 lambda forEach() 中处理多个列表

问题描述

有什么办法可以用 lambdas/streams 做到这一点?

public List<CartItem> getCartItems() {
    List<CartItem> items = new ArrayList<>();
    for (int ctr = 0; ctr < names.size(); ctr++) {
        items.add(new CartItem(names.get(ctr), prices.get(ctr), quantities.get(ctr), subTotals.get(ctr)));
    }
    return items;
}

标签: javaarraylistlambdajava-stream

解决方案


您可以使用IntStream

public List<CartItem> getCartItems() {
    return IntStream.range(0,names.size())
                    .mapToObj(ctr -> new CartItem(names.get(ctr), prices.get(ctr), quantities.get(ctr), subTotals.get(ctr)))
                    .collect(Collectors.toList());
}

推荐阅读