Collectors.groupingBy分组后的排序问题
时间: 2023-10-13 10:26:39 浏览: 153
Java lambda Stream List过滤筛选、排序、分组(Java进阶).md
使用`Collectors.groupingBy`进行分组时,可以通过`TreeMap`来保证分组后的顺序。`TreeMap`是一种有序的`Map`实现,它会根据键的自然顺序或者指定的比较器来进行排序。
下面是使用`TreeMap`来对分组后的结果按照键进行排序的示例代码:
```java
Map<String, List<String>> result = list.stream()
.collect(Collectors.groupingBy(
s -> s.substring(0, 1),
TreeMap::new,
Collectors.toList()
));
```
在上面的代码中,第二个参数传入了一个`TreeMap::new`,这样就会使用`TreeMap`来存储分组后的结果,并且会按照键的自然顺序进行排序。如果想要按照其他顺序进行排序,可以传入一个自定义的比较器。
阅读全文