Collectors.groupingBy返回结果排序
时间: 2023-12-21 15:32:07 浏览: 83
Collectors.groupingBy返回的结果是一个HashMap,它不保证元素的顺序。HashMap是基于哈希表实现的,它使用键值对存储数据,并且不保留插入顺序。如果你需要按照特定的顺序对结果进行排序,你可以使用其他的方法来实现,比如使用TreeMap来替代HashMap。TreeMap是基于红黑树实现的,它可以按照键的自然顺序或者自定义的比较器进行排序。
以下是一个示例代码,演示了如何使用Collectors.groupingBy和TreeMap来对结果进行排序:
```java
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
Map<Character, List<String>> result = list.stream()
.collect(Collectors.groupingBy(s -> s.charAt(0), TreeMap::new, Collectors.toList()));
System.out.println(result);
}
}
```
输出结果将按照键的自然顺序进行排序:
```
{a=[apple], b=[banana], c=[cherry], d=[date], e=[elderberry]}
```
阅读全文