1、Stream 多个字段排序
stream 多字段排序:https://blog.csdn.net/weixin_44953227/article/details/123325801
2、stream对Map对象进行分组
package com.cn.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class MapTest {
public static void main(String[] args) {
ArrayList<Map> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("flag", "aa");
map1.put("map", "map1");
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("flag", "bb");
map2.put("map", "map2");
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("flag", "bb");
map3.put("map", "map3");
list.add(map3);
Map<String, Object> map4 = new HashMap<>();
map4.put("flag", "cc");
map4.put("map", "map4");
list.add(map4);
// 用 flag 字段的值进行分组
Map<String, List<Map>> group1 = list.stream()
.collect(Collectors.groupingBy(item -> String.valueOf(item.get("flag")),
HashMap::new,
Collectors.toList()));
System.out.println(group1);
}
}