import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) { List<Map<String,Object>> list = new ArrayList<>(); Map<String,Object> map = new HashMap<>(); map.put("id","11111"); map.put("name","2222222"); map.put("pro","kkkk"); list.add(map); map = new HashMap<>(); map.put("id","11111"); map.put("name","2222222"); map.put("pro","kkkkddddd"); list.add(map); Map<HashMap<String, Object>, List<Object>> collect = list.stream() .collect(Collectors.groupingBy(e -> { HashMap<String, Object> map1 = new HashMap(){ @Override public boolean equals(Object obj) { boolean b = this.get("id").equals(((Map) obj).get("id")); return b; } @Override public int hashCode() { return this.get("id").hashCode(); } }; map1.putAll(e); return map1; }, Collectors.mapping(e -> e.get("pro"), Collectors.toList()))); System.out.print(collect); }}
