public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList();
Map map1 = new HashMap();
Map map2 = new HashMap();
Map map3 = new HashMap();
map1.put("a",1);
map1.put("b",2);
map1.put("c",3);
map2.put("a",1);
map2.put("b",2);
map2.put("c",3);
map3.put("a",1);
map3.put("b",4);
map3.put("c",3);
list.add(map1);
list.add(map2);
list.add(map3);
Map<String,List<Map>> mapListGroup = list.stream().collect(Collectors.groupingBy(e->e.get("b").toString()));
for (Object value : mapListGroup.values()) {
List<Map> mapList = (List<Map>) value;
System.out.println(mapList);
}
}