可以使用Stream流的collect方法来实现对List<Map<String, Object>>格式的数据进行分组操作。

首先,需要使用Collectors.groupingBy方法来指定分组的条件。在这里,我们可以使用一个lambda表达式作为groupingBy方法的参数,来指定分组的key。在lambda表达式中,可以通过Map的get方法来获取到需要进行分组的字段的值。

然后,我们可以使用Stream流的collect方法来将分组结果收集到一个新的Map对象中。在collect方法中,我们可以使用Collectors.toList方法来将分组后的数据放入一个List中。

以下是一个示例代码:

List<Map<String, Object>> dataList = new ArrayList<>();

// 添加测试数据
Map<String, Object> data1 = new HashMap<>();
data1.put("group", "A");
data1.put("value", 1);
dataList.add(data1);

Map<String, Object> data2 = new HashMap<>();
data2.put("group", "B");
data2.put("value", 2);
dataList.add(data2);

Map<String, Object> data3 = new HashMap<>();
data3.put("group", "A");
data3.put("value", 3);
dataList.add(data3);

// 进行分组操作
Map<Object, List<Map<String, Object>>> groupedData = dataList.stream()
        .collect(Collectors.groupingBy(data -> data.get("group")));

// 输出分组结果
for (Map.Entry<Object, List<Map<String, Object>>> entry : groupedData.entrySet()) {
    System.out.println("Group: " + entry.getKey());
    System.out.println("Data: " + entry.getValue());
}

输出结果:

Group: A
Data: [{group=A, value=1}, {group=A, value=3}]
Group: B
Data: [{group=B, value=2}]

在这个示例中,我们通过groupingBy方法将数据按照"group"字段进行分组,然后使用collect方法将结果收集到groupedData变量中。最后,我们遍历groupedData,并输出每个分组的key和对应的数据

ListMapStringObject 这个格式的 stream流分组

原文地址: https://www.cveoy.top/t/topic/iV7k 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录