我有一个项目列表。我想按3个属性(类别,颜色,城市)对此列表进行分组。
示例:
ID;Category;Color;City;Name
1;1;Red,Rome,Shoe A
2;1;Red,Paris,Shoe C
3;1;Green,Rome,Scarf
4;1;Red,Rome,Shoe B
5;2;Red,Rome,Scarf
6;1;Red,Rome,Scarf
7;1;Green,Rome,Shoe
所以最后我有一个列表,如下所示:
1;Red;Rome => ID (1,4, 6)
1;Red;Paris => ID(2)
1;Green,Rome => ID(3,7)
2;Red;Rome => ID(5)
我知道如何按属性对列表进行分组:
Map<Category, List<Items>> _items = items.stream().collect(Collectors.groupingBy(item -> item.getCategory()));
但是如何处理多个属性呢?
1条答案
按热度按时间smdnsysy1#
你需要创建一个对象,作为唯一标识元组的键,元组由3个值
Category
,Color
和City
组成。然后,您可以对代码行进行简单的修改: