Java 8 转换列表<;地图<;字符串,对象>&燃气轮机;映射<;字符串,列表<;地图<;字符串,对象>&燃气轮机&燃气轮机;使用Java8流API

Java 8 转换列表<;地图<;字符串,对象>&燃气轮机;映射<;字符串,列表<;地图<;字符串,对象>&燃气轮机&燃气轮机;使用Java8流API,java-8,stream,Java 8,Stream,我的问题与已经提出的问题有点相似。我的意见如下: 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);

我的问题与已经提出的问题有点相似。我的意见如下:

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 m1=newhashmap();
m1.认沽权(“集团”、“1”);
m2.放置(“A”,10l);
m2.put(“B”,20l);
m2.投入(“C”,100l);
Map m2=新的HashMap();
m1.认沽权(“集团”、“1”);
m2.放置(“A”,30l);
m2.put(“B”,40升);
m2.放置(“C”,500l);
List beforeFormatting=新建ArrayList();
在格式化之前添加(m1);
在格式化之前添加(m2);
我的预期产出是:

Map<String, List<Map<String, Object>>> afterFormatting;
Map后格式化;
输出:

1->[m1,m2]

我在下面尝试过,但出现编译错误:似乎我在映射方面做错了什么:

Map<String, List<Map<String, Object>>> afterFormatting = beforeFormatting.stream()
                    .collect(groupingBy(map -> map.get("group_id"), toList()));
Map afterFormatting=beforeFormatting.stream()
.collect(groupby(map->map.get(“group_id”),toList());
Well
map.get(“group\u id”)
返回一个
对象,但如果您试图将其映射到
字符串,请更改返回类型:

Map<Object, List<Map<String, Object>>> afterFormatting = beforeFormatting.stream()
            .collect(Collectors.groupingBy(map -> map.get("group_id")));
Map afterFormatting=beforeFormatting.stream()
.collect(Collectors.groupingBy(map->map.get(“group_id”)));

您还可以删除
toList
,因为当使用带有单个参数的
groupingBy
时,它会隐式使用

错误:(114,33)java:不兼容类型:推理变量K具有不兼容的边界相等约束:java.lang.String下限:java.lang.ObjectWow谢谢!!我想我有点迷路了&我的思想转向了另一个方向。这样打字可以吗:(String)map.get(“group_id”)?@Gauravsani一开始就证明正确的类型如何?@Eugene我期望的键应该是字符串类型,我不太喜欢保持键的开放性。