对List<Map<String,Object>>中的Map中的某个属性进行分组,
返回结果是Map<String,List<Map<String,Object>>>
使用java8Lambda新特性,Collectors.groupingBy方法进行分组。
分组后的结果
代码:
public static void main(String[] args) {
List<Map<String,Object>> list = new ArrayList<>();
Map<String,Object> map1 = new HashMap<>();
map1.put("分组","A");
map1.put("map","map1");
list.add(map1);
Map<String,Object> map2 = new HashMap<>();
map2.put("分组","B");
map2.put("map","map2");
list.add(map2);
Map<String,Object> map3 = new HashMap<>();
map3.put("分组","A");
map3.put("map","map3");
list.add(map3);
Map<String,Object> map4 = new HashMap<>();
map4.put("分组","B");
map4.put("map","map4");
list.add(map4);
Map<String,List<Map<String,Object>>> mapList = list.stream().
collect(Collectors.groupingBy((Map m) -> (String) m.get("分组")));
}