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}

相关推荐
逊嘘2 分钟前
【MySQL】表的增删改查(拓展)
java·数据库·mysql
易元12 分钟前
设计模式-代理模式
java·后端
JaneYork19 分钟前
接口设计,接口返回信息,当账号不存在时候,应该返回200还是500,是直接返回R.fail()还是throw exception
java·spring boot
qianmoq23 分钟前
轻松掌握Java多线程 - 第二章:线程的生命周期
java·后端
风象南25 分钟前
Spring Boot 实现文件断点续传
java·spring boot·后端
Lecea_L31 分钟前
你能在K步内赚最多的钱吗?用Java解锁最大路径收益算法(含AI场景分析)
java·人工智能·算法
Tony8832 分钟前
热题100 - 394. 字符串解码
java·算法
cwtlw35 分钟前
JavaRedis和数据库相关面试题
java·数据库·笔记·面试
XF鸭36 分钟前
身份证正则表达式详解
java
Lecea_L38 分钟前
🔍 找到数组里的“节奏感”:最长等差子序列
java·算法