要根据 CPID 分组,你可以使用 Java 的 Stream API 和 Collectors.groupingBy() 方法来实现。首先,你需要将数据 List 转换为 Stream,然后使用 groupingBy() 方法将数据按照 CPID 分组。以下是一个示例代码:

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, String>> data = new ArrayList<>();
        
        // 添加示例数据
        Map<String, String> map1 = new HashMap<>();
        map1.put('CPID', '1');
        map1.put('Name', 'John');
        data.add(map1);
        
        Map<String, String> map2 = new HashMap<>();
        map2.put('CPID', '2');
        map2.put('Name', 'Jane');
        data.add(map2);
        
        Map<String, String> map3 = new HashMap<>();
        map3.put('CPID', '1');
        map3.put('Name', 'Alice');
        data.add(map3);
        
        // 根据CPID分组
        Map<String, List<Map<String, String>>> groupedData = data.stream()
                .collect(Collectors.groupingBy(m -> m.get('CPID')));
        
        // 打印分组结果
        groupedData.forEach((cpid, list) -> {
            System.out.println('CPID: ' + cpid);
            System.out.println('Data: ' + list);
            System.out.println();
        });
    }
}

运行以上代码,你会得到如下输出:

CPID: 1
Data: [{CPID=1, Name=John}, {CPID=1, Name=Alice}]

CPID: 2
Data: [{CPID=2, Name=Jane}]

以上代码中,我们使用了一个包含 CPID 和 Name 属性的 Map 来表示数据。首先,我们创建了一个 List<Map<String, String>> 来存储数据。然后,我们使用 Stream API 的 groupingBy() 方法将数据按照 CPID 分组。分组的结果是一个 Map,其中 Key 是 CPID,Value 是具有相同 CPID 的数据列表。最后,我们遍历分组结果并打印出来。

Java 使用 Stream API 对 List<Map<String,String>> 按 CPID 分组

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

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