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);
    }
}

简单示例仅供参考

相关推荐
k***92167 小时前
【C++】继承和多态扩展学习
java·c++·学习
weixin_440730507 小时前
java结构语句学习
java·开发语言·学习
魂万劫7 小时前
如何在虚拟机VM上|Linux环境内安装windows
linux·运维·服务器·windows
JIngJaneIL7 小时前
基于java+ vue医院管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
Coder_Boy_7 小时前
Spring AI 源码大白话解析
java·人工智能·spring
仙俊红7 小时前
在 Java 中,`==` 和 `equals()` 的区别
java·开发语言·jvm
计算机学姐7 小时前
基于SpringBoot的高校论坛系统【2026最新】
java·vue.js·spring boot·后端·spring·java-ee·tomcat
予枫的编程笔记7 小时前
Redis 核心数据结构深度解密:从基础命令到源码架构
java·数据结构·数据库·redis·缓存·架构
JIngJaneIL7 小时前
基于java + vue校园跑腿便利平台系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
fengye2071617 小时前
win10+VM17+虚拟机win10搭建(三)
windows