我有一份产品清单。每种产品都有另一份成分清单。 我如何使用Streams来获取所有产品的所有成分列表?
products.stream()
.map(Product::getIngredients())
.filter(i -> !i.isEmpty())
.distinct()
.collect(Collectors.toList());
就我的代码而言,到目前为止,我只是得到一个包含子列表的列表...
正确的方法是什么?
非常感谢!
答案 0 :(得分:6)
只需使用flatMap
:
products.stream()
.flatMap(product -> product.getIngredients().stream())
.distinct()
.collect(Collectors.toList());