我想根据某些属性对对象进行分组/收集。该项目有一些 Product 对象:
public class Product {
private String id;
private String name;
private ProductFlavor flavor; // enum
private ProductType productType; // enum
private ProductCategory category; // enum
}
我知道需要做的是创建一个集合,以便产品按类别组合,每个类别按产品类型组合,然后显示该产品的所有可能的口味。
例如
可视化这是一个产品表,在这种情况下应该包含
我开始按类别对它们进行分组,但后来我被卡住了。因为对我来说,它应该是一个产品类别列表,其中包含具有可能口味的分组产品。
Map<ProductCategory, List<Product>> result = dummies.stream().collect(
Collectors.groupingBy(
Product::getCategory,
TreeMap::new,
Collectors.mapping(event -> event, Collectors.toCollection(ArrayList::new))
)
);