Java对List<Map>进行合并去重

对List进行合并去重,首先创建一个新的 List 用于存储合并去重后的结果,遍历原始的 List,将每个 Map 对象中的键值对放入一个 Set 中进行去重,最后将去重后的键值对重新组装成一个新的 Map 对象,并添加到新的 List 中。

完整实例代码如下:

java 复制代码
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        // 创建原始的 List<Map>
        List<Map<String, Integer>> list = new ArrayList<>();
        Map<String, Integer> map1 = new HashMap<>();
        map1.put("a", 1);
        map1.put("b", 2);
        Map<String, Integer> map2 = new HashMap<>();
        map2.put("a", 1);
        map2.put("c", 3);
        list.add(map1);
        list.add(map2);

        // 创建用于存储合并去重后的结果的新 List<Map>
        List<Map<String, Integer>> mergedDeduplicatedList = new ArrayList<>();
        // 创建用于去重的 Set<Map>
        Set<Map<String, Integer>> set = new HashSet<>();

        // 遍历原始的 List<Map>
        for (Map<String, Integer> map : list) {
            // 创建一个新的 Map 用于存储合并去重后的结果
            Map<String, Integer> newMap = new HashMap<>(map);
            // 如果新的 Map 成功添加到 Set 中,说明是一个新的 Map,将其添加到结果 List<Map> 中
            if (set.add(newMap)) {
                mergedDeduplicatedList.add(newMap);
            }
        }

        // 输出结果
        System.out.println("Original List: " + list);
        System.out.println("Merged and Deduplicated List: " + mergedDeduplicatedList);
    }
}

简单示例仅供参考

相关推荐
yqwang_cn8 分钟前
使用Python提取PDF大纲(书签)完整指南
windows·python·pdf
悦人楼27 分钟前
深入理解Java集合框架:核心接口、实现类与实战选择
java·windows·python
花开富贵ii1 小时前
代码随想录算法训练营第三十八天、三十九天|动态规划part11、12
java·数据结构·算法·leetcode·动态规划
##学无止境##2 小时前
深入剖析Java线程:从基础到实战(上)
java·开发语言·redis
麦兜*7 小时前
Spring Boot整合PyTorch Pruning工具链,模型瘦身手术
java·pytorch·spring boot·后端·spring cloud·ai编程·剪枝
岁忧8 小时前
(nice!!!)(LeetCode 每日一题) 3363. 最多可收集的水果数目 (深度优先搜索dfs)
java·c++·算法·leetcode·go·深度优先
陌上 烟雨齐10 小时前
Kafka数据生产和发送
java·分布式·kafka
Jinkxs10 小时前
高级15-Java构建工具:Maven vs Gradle深度对比
java·开发语言·maven
有梦想的攻城狮10 小时前
spring中的ApplicationRunner接口详解
java·后端·spring·runner·application
程序视点10 小时前
设计模式之原型模式!附Java代码示例!
java·后端·设计模式