使用stream流grouping by 实现三个条件有序分组
时间: 2024-04-21 19:06:29 浏览: 119
java1.8 中 stream 的 groupingBy 最大值、最小值分组
非常好的问题!使用Stream流的groupingBy功能可以根据指定条件对元素进行分组,并返回一个Map。你可以使用多个groupingBy,使得分组结果有序。下面是一个示例代码:
```
Map<String, Map<String, List<String>>> result = list.stream()
.collect(Collectors.groupingBy(elem -> elem.substring(0, 1),
LinkedHashMap::new,
Collectors.groupingBy(elem -> elem.substring(1, 2),
LinkedHashMap::new,
Collectors.mapping(elem -> elem.substring(2), Collectors.toList()))));
```
这个代码将元素按照前两个字符进行分组,并且保证了分组结果的顺序。你可以根据自己的需求进行修改。希望能对你有所帮助!
阅读全文