tream的groupby怎么固定map的顺序
时间: 2024-02-11 10:05:00 浏览: 50
在使用Stream的groupby进行分组操作时,如果需要固定map的顺序,可以使用LinkedHashMap来保存分组结果。LinkedHashMap是一种有序的HashMap,它会按照元素插入的顺序进行排序,因此可以保证分组结果的顺序固定。
具体实现可以在groupby操作后,使用Collectors.toMap()方法,指定第三个参数为LinkedHashMap::new,即可生成一个有序的Map。示例代码如下:
```
import java.util.*;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "orange", "pear", "peach", "kiwi");
Map<Integer, List<String>> map = list.stream()
.collect(Collectors.groupingBy(String::length, LinkedHashMap::new, Collectors.toList()));
System.out.println(map);
}
}
```
输出结果为:
```
{5=[apple, peach], 6=[banana, orange], 4=[pear], 3=[kiwi]}
```
可以看到,分组结果的顺序与元素插入的顺序一致。
阅读全文