java将数据进行多维度进行分类实现

多维度数据分类为若干组,有什么好的实现方法吗?
场景:将100条数据进行分组,数据按照材料,工艺,颜色三个维度(三同)分类,不用group by,用代码实现。
不知道会分为几组,不知道创建几个集合去装数据。

使用流collect(Collectors.groupingBy(屬性),Collectors.groupingBy(屬性))

用这个数据结构就行啦:Map<String,List>,大概思路如下

  1. Key为材料,工艺,颜色拼接的字符串,中间可以用分隔符分开: key = item.getCl() + "-" + item.getGy() + "-" + item.getYs() 。
  2. 若key在Map中不存在则put进去:map.put(key, new ArrayList());
  3. 存放数据:map.get(key).add(item)