首页 > 其他分享 >Map修改Value的多种方法

Map修改Value的多种方法

时间:2023-10-25 13:13:06浏览次数:28  
标签:Map map value 修改 Value key put 方法

Map修改Value的多种方法

本文为大家介绍多种修改Map中Value的方法,并附上详细的代码示例。

一、使用put()方法

Map接口中的put(key, value)方法可以直接修改Map中已有key对应的value值。只需将要修改的key和新的value传入put()方法,即可完成修改操作。

Map<string, integer=""> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);

// 修改key为A的value值为3
map.put("A", 3);
System.out.println(map); // {A=3, B=2}

在上面的示例中,我们使用put()方法将key为"A"的value值从1修改为3,并且输出了修改后的Map。

二、使用replace()方法

Map接口中的replace(key, value)方法可以直接替换Map中已有key对应的value值。只需将要修改的key和新的value传入replace()方法,即可完成替换操作。

Map<string, integer=""> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);

// 替换key为A的value值为3
map.replace("A", 3);
System.out.println(map); // {A=3, B=2}

在上面的示例中,我们使用replace()方法将key为"A"的value值从1替换为3,并且输出了替换后的Map。

三、使用compute()方法

Map接口中的compute(key, BiFunction)方法可以根据key和value计算出一个新的value值,并且更新到Map中。

Map<string, integer=""> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);

// 使用compute方法将key为A的value值+1
map.compute("A", (k, v) -> v + 1);
System.out.println(map); // {A=2, B=2}

在上面的示例中,我们使用compute()方法将key为"A"的value值加上1,并且输出了计算后的Map。

四、使用merge()方法

Map接口中的merge(key, value, BiFunction)方法可以将指定key的value值与传入的value执行指定的计算,并将计算结果作为新的value更新到Map中。

Map<string, integer=""> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);

// 将key为A的value值+1
map.merge("A", 1, (oldVal, newVal) -> oldVal + newVal);
System.out.println(map); // {A=2, B=2}

// 如果key不存在,则新增一个键值对
map.merge("C", 3, (oldVal, newVal) -> oldVal + newVal);
System.out.println(map); // {A=2, B=2, C=3}

在上面的示例中,我们使用merge()方法将key为"A"的value值加上1,并且输出了计算后的Map。同时,我们还使用merge()方法在Map中新增了一个key为"C"的键值对。

五、使用putIfAbsent()方法

Map接口中的putIfAbsent(key, value)方法可以将指定的value值与指定的key相关联,但是仅当该key尚未与某个value相关联时才执行操作。这个方法可以用来保证我们对value的修改不会对其他线程产生影响。

Map<string, integer=""> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);

// 如果key为A不存在,则新增一个键值对
map.putIfAbsent("A", 3);
System.out.println(map); // {A=1, B=2}

// 如果key为C不存在,则新增一个键值对
map.putIfAbsent("C", 3);
System.out.println(map); // {A=1, B=2, C=3}

在上面的示例中,我们使用putIfAbsent()方法保证了对key为"A"的value值的修改不会对其他线程产生影响,并且输出了修改后的Map。同时,我们还使用putIfAbsent()方法在Map中新增了一个key为"C"的键值对。

六、总结

本文为大家介绍了多种修改Map中Value的方法,分别是:put()、replace()、compute()、merge()、putIfAbsent()方法,通过详细的示例代码展示了使用方法。我们可以根据不同的需求选择不同的方法进行Map的Value值的修改。

原文链接:https://www.python100.com/html/4L5M85KI7ZZ5.html

标签:Map,map,value,修改,Value,key,put,方法
From: https://www.cnblogs.com/sunny3158/p/17786910.html

相关文章

  • java MAP集合
    javaMAP集合map集合的特点有哪些?map集合是无序的,键值对,建不能重复,值可以重复,集合中的键可以为空如何给map集合赋值?可以调用map.put()方法,进行赋值(注意!键不可以重复)如何获取到map集合的值?可以调用map.get()方法,可以通过键获取值运行结果如何遍历map集合?便利map集合的......
  • 10-25|我只想可以修改容器内的时间而不影响外部时间怎么办啊
    想要在容器内部独立地修改时间,而不影响宿主机,你可以使用Linux的namespace隔离特性。不过,请注意,Docker自己并没有直接提供修改容器独立时间的功能。但你可以使用以下技巧来实现:1.**使用`fake-hwclock`**:这个工具在每次系统启动和停止时保存和读取系统时间。这样即使容器重启,时间......
  • Emqx5 版本 修改默认配置文件
    ##NOTE:##Configsinthisfilemightbeoverriddenby:##1.Environmentvariableswhichstartwith'EMQX_'prefix##2.File$EMQX_NODE__DATA_DIR/configs/cluster-override.conf##3.File$EMQX_NODE__DATA_DIR/configs/local-override.conf####......
  • python--playwright修改GET/POST请求参数,抓包修改数据
    首先,playwright修改GET/POST请求参数后在浏览器(chromium)的network面板的入参是没有变化的,但实际上传给服务端的参数是已经发生变化了的,下面先搭建了一个返回入参的flask服务,地址为"http://127.0.0.1:8083"。接着通过playwright分别发送GET和POST请求,参数均为:{"key1":"value1","......
  • window平台下Emacs Home目录的修改
    现在Emacs的Home目录会随机生成了,default-directory等已经不起作用了,查找了网上各种方法。下面这种方法是最方便的在控制台(cmd)中执行下面的命令:SETXEMACS_HOME"D:\Documents\Programming\emacshome"添加环境变量(这里是用户变量)或手动添加环境变量(系统变量也可以),这里的变量名E......
  • 用git stash暂存修改
    gitstash命令用于保存当前工作目录的临时状态,包括暂存区和已修改但未暂存的文件。它会将这些修改保存在一个临时区域(即“堆栈”)中,让你能够回到一个干净的工作目录,可以进行其他操作。等到你完成其他任务后,可以再回到之前的状态,继续之前的开发。使用场景切换分支:当你正在开发一个功......
  • STL之set和map使用介绍(六千字长文详解)
    set和map介绍基础概念关联式容器像是vector,list,deque,forward_list这些都是属于==序列式容器==!因为其底层为线性序列的数据结构,里面存储的是元素本身。而map和set是属于==关联式容器==!什么是关联式容器?关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是结构的<......
  • MapStruct详解
    1啥玩意?MapStruct是一个代码生成器,它基于约定优于配置的方法极大地简化了Javabean类型之间映射的实现。生成的映射代码使用简单的方法调用,因此速度快、类型安全且易于理解。2为什么?多层应用程序通常要在不同对象模型(如entities和DTO)之间映射。编写映射代码是乏味易出错......
  • tf-agent 报错 ValueError 解决记录
    摘要:最近强化学习需要用到tf-agents,记录一下使用过程遇到的问题。版本说明:tensorflow2.14.0gym0.23.0tf-agents0.17.0numpy1.24.0ale-py0.8.1......
  • 中文Windows修改为英文并解决“无法获取此Windows显示语言”问题的方法
      本文介绍在Windows10操作系统中,修改系统的显示语言的方法;并解决在这一过程中,出现的“很抱歉,我们无法获取此Windows显示语言”报错问题。  本文就以将原本系统语言的中文修改为英文为例,介绍具体的方法。首先,我们在电脑左下角的开始菜单处,右键并选择“设置”;如下图所示。 ......