首页 > 编程语言 >java 替换Map中key的值

java 替换Map中key的值

时间:2024-02-29 15:02:32浏览次数:29  
标签:replaceMap Map java HashMap key put new



import java.util.*;
import java.util.stream.Collectors;

public class MapKeyReplacement {
    public static void main(String[] args) {
        // 假设我们有如下的List<Map<String, String>>
        List<Map<String, String>> list = Arrays.asList(
                new HashMap<String, String>() {{
                    put("a", "1");
                    put("c", "3");
                }},
                new HashMap<String, String>() {{
                    put("a", "2");
                    put("d", "4");
                }},
                new HashMap<String, String>() {{
                    put("a", "5");
                    put("e", "6");
                }}
        );
        Map<String, String> replaceMap = new HashMap<>();
        replaceMap.put("a", "x");
        replaceMap.put("c", "y");
        replaceMap.put("d", "z");
        replaceMap.put("f", "yy");

        List<Map<String, String>> newList = list.stream()
                .map(originalMap -> {
                    Map<String, String> newMap = new LinkedHashMap<>();
                    originalMap.forEach((key, value) -> {
                        newMap.put(replaceMap.getOrDefault(key, key), value);
                    });
                    return newMap;
                })
                .collect(Collectors.toList());

        // 输出替换后的List<Map<String, String>>
        newList.forEach(System.out::println);
    }
}


标签:replaceMap,Map,java,HashMap,key,put,new
From: https://www.cnblogs.com/iullor/p/18044213

相关文章

  • Java HashMap 详解
    HashMapHashMap继承自AbstractMap,实现了Map接口,基于哈希表实现,元素以键值对的方式存储,允许键和值为null。因为key不允许重复,因此只能有一个键为null。HashMap不能保证放入元素的顺序,它是无序的,和放入的顺序并不相同。HashMap是线程不安全的。1.哈希表哈希表基于数......
  • javascript中的var,let,const区别
    const:这个最简单,只需记住是声明的常量,定义的时候必须声明const的具体值,且之后不允许改变const的值 var和let区别1、由于js引擎存在预解析,会把var变量名进行提升对于var来说是这样执行的varm;console.log(m);m=10;let不存在变量提升,会直接报错   2、var是全局......
  • 2.28继续javaweb
     今天继续昨天没有完成的内容@Data@AllArgsConstructor@NoArgsConstructorpublicclassPlan{privateStringname;privateintnumber;privateStringsum;privateStringidea;privateStringenglish;privateStringmath;privateLocalDateT......
  • 扣子(coze.cn)| 由浅入深,手把手带你实现Java转型学习助手
    扣子(coze.cn)是一款用来开发新一代AIChatBot的应用编辑平台,无论你是否有编程基础,都可以通过这个平台来快速创建各种类型的ChatBot,并将其发布到各类社交平台和通讯软件上!2月1日,扣子国内版已经正式上线啦~赶快来体验一下吧!一转眼,ChatGPT已经在AI界炙手可热超过一年,堪称新晋......
  • ConcurrentHashMap 核心源码解析
    废话不多说,直接看代码类名与HashMap很相似,数组、链表结构几乎相同,都实现了Map接口,继承了AbstractMap抽象类,大多数的方法也都是相同的publicclassConcurrentHashMap<K,V>extendsAbstractMap<K,V>implementsConcurrentMap<K,V>,Serializable核心方法Node方法......
  • 「java.util.concurrent并发包」之 Semaphore
    一Semaphore是什么Semaphore也叫信号量,在JDK1.5被引入,可以用来控制同时访问特定资源的线程数量,通过协调各个线程,以保证合理的使用资源。Semaphore内部维护了一组虚拟的许可,许可的数量可以通过构造函数的参数指定。访问特定资源前,必须使用acquire方法获得许可,如果许可数量为0......
  • java向上转型和向下转型
    1.问题向上转型的意义是什么?向下转型又有什么条件?2.解决参考:聊聊java的向上转型与向下转型向上转型向上转型是用来表现新类和基类之间的关系。在传统中,由导出类转型成基类,在继承图中是向上移动的。因此称作向上转型。由于向上转型是从一个较专用类型向较通用类型转换,所以总......
  • JAVA虚拟机系列: (一) . JDK1.6/ 1.7/ 1.8运行时内存分配简要图解
     注意:  1.本文讨论均为JDK官方版本,默认采用的HotSpot虚拟机;  2.图片为本人绘制,转载请标明出处;  3.本博均为个人理解,如有分歧,欢迎指正和讨论 从JDK1.6到1.8,运行时内存分配简图分别如下:  在JDK1.7中的HotSpot中,已经把原本放在方法区的字......
  • java参数 -xms -xmx
    参考链接:https://blog.csdn.net/lgleje/article/details/125041480xms、xmx-xms:设置初始化堆内存大小,默认2M-xmx:设置最大可分配堆内存大小,默认64M示例:#初始化128MB堆内存,允许最大堆内存最大1024MB.java-Xms128m-Xmx1024m#初始化256MB堆内存,允许最大......
  • 【STL和泛型编程】3. set、map分析(及typename起源)
    前置知识:红黑树原理 【数据结构】7.平衡搜索树(AVL树和红黑树),红黑树的平衡性有利于search和insert红黑树的迭代器begin()左侧end()右侧迭代顺序56781011121315不能使用迭代器修改Key的值,例如将6改成50会破坏红黑树的性质1.RB-tree在g++编译......