【发布时间】:2018-01-30 04:27:11
【问题描述】:
我的问题与here in stackoverflow 已经提出的问题有点相似。我的输入如下:
Map<String, Object> m1 = new HashMap<>();
m1.put("group", "1");
m2.put("A", 10l);
m2.put("B", 20l);
m2.put("C", 100l);
Map<String, Object> m2 = new HashMap<>();
m1.put("group", "1");
m2.put("A", 30l);
m2.put("B", 40l);
m2.put("C", 500l);
List<Map<String, Object>> beforeFormatting = new ArrayList<>();
beforeFormatting.add(m1);
beforeFormatting.add(m2);
我的预期输出是:
Map<String, List<Map<String, Object>>> afterFormatting;
输出:
1 -> [m1, m2]
我在下面尝试过,但出现编译错误:似乎我在映射方面做错了:
Map<String, List<Map<String, Object>>> afterFormatting = beforeFormatting.stream()
.collect(groupingBy(map -> map.get("group_id"), toList()));
【问题讨论】:
-
错误:(114, 33) java: 不兼容的类型: 推理变量 K 具有不兼容的边界等式约束: java.lang.String 下界: java.lang.Object