list中map集合按key去重

java 复制代码
package com.ztrs.ioms.utils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Map<String, Object>> list = new ArrayList<>();
        Map<String, Object> map1 = new HashMap<>();
        map1.put("id", "1");
        map1.put("name", "Alice");

        Map<String, Object> map2 = new HashMap<>();
        map2.put("id", "1"); // 与map1的id相同,视为重复
        map2.put("name", "Bob");

        Map<String, Object> map3 = new HashMap<>();
        map3.put("id", "2");
        map3.put("name", "Charlie");

        list.add(map1);
        list.add(map2);
        list.add(map3);

        List<Map<String, Object>> uniqueList = list.stream()
                .collect(Collectors.toMap(
                        map -> (String) map.get("id"),
                        Function.identity(),
                        (existing, replacement) -> replacement
                )).values().stream().collect(Collectors.toList());

        // 打印结果
        uniqueList.forEach(System.out::println);
    }
}

返回结果:

{name=Bob, id=1}

{name=Charlie, id=2}

相关推荐
空中海9 小时前
第三章:Maven高级篇 — 插件开发与多模块工程
java·maven
秋99 小时前
TiDB 数据库全链路实战指南:从下载部署到 Java 高并发调优
java·数据库·tidb
JAVA面经实录9179 小时前
Java开发工程基础完整手册(企业实战完整版)
java·开发语言·git·ci/cd·svn·github·intellij idea
李艺为9 小时前
Fake Device Test作假屏幕分辨率分析
android·java
无敌的黑星星10 小时前
Spring @Transactional 注解全解析
java·数据库·oracle
xiaogg367810 小时前
spring oauth2 单点登录
java·vue.js·spring
c++之路10 小时前
C++ STL
java·开发语言·c++
白晨并不是很能熬夜10 小时前
【RPC】第 4 篇:服务发现 — Zookeeper + 缓存容错
java·后端·程序人生·缓存·zookeeper·rpc·服务发现
EvenBoy10 小时前
IDEA中使用CodeX
java·ide·intellij-idea
日取其半万世不竭10 小时前
Minecraft Java版社区服搭建教程(Windows版)
java·开发语言·windows