专栏名称: macrozheng
专注Java技术分享,解析优质开源项目。涵盖SpringBoot、SpringCloud、Docker、K8S等实用技术,作者Github开源项目mall(50K+Star)。
今天看啥  ›  专栏  ›  macrozheng

Map 只会 put、get?快来学这几个“新”方法!

macrozheng  · 公众号  · 科技自媒体  · 2024-11-14 10:32
    

主要观点总结

本文介绍了JDK8中Map的新方法及其在微服务实战项目中的应用,包括getOrDefault、forEach、merge、putIfAbsent、computer、computeIfAbsent、computeIfPresent和replace等方法的使用。

关键观点总结

关键观点1: JDK8中Map的新方法简介

在JDK8中,Map引入了几个新方法,包括getOrDefault、forEach、merge、putIfAbsent等,这些方法可以简化对Map中数据的操作。

关键观点2: getOrDefault方法的使用

getOrDefault方法尝试获取key对应的值,如果未获取到,就返回默认值,可以简化代码书写。

关键观点3: forEach方法的使用

forEach方法是遍历map的数据使用的,可以更方便地使用entry中的key和val。

关键观点4: merge方法的使用

merge方法是合并entry使用的,可以接收三个参数:key、value和function,按照function计算后更新到Map中。

关键观点5: putIfAbsent方法的使用

putIfAbsent方法只有在不存在key或值为null时,才将键值对放入Map,不会直接覆盖已有的值。

关键观点6: computer、computeIfAbsent和computeIfPresent方法的使用

computer方法需要传入两个参数:key和function,进行计算并更新值。computeIfAbsent只有在key不存在时才执行计算。computeIfPresent则是只有key存在时才执行计算。

关键观点7: replace方法的使用

replace方法用于替换Map中已存在的键值对的值。

关键观点8: 微服务实战项目中的应用

这些Map的新方法在某些微服务项目中可以发挥巨大的作用,例如在统计List中每个元素出现的次数、计算斐波那契数列等场景中。


文章预览

微服务项目学习: cloud.macrozheng.com 作者:podongfeng 來源:juejin.cn/post/7342420969879093299 引子 Map的数据操作,你是不是还只会 put 、 get ?Map是我们日常编程中十分常用的数据接口,的在JDK8中,Map引入了几个新方法,可以简化我们对Map中数据的操作。目前JDK的最新LTS版本已经更新到21了,这几个在JDK8引入的Map”新“方法其实也是”老“方法了,还没熟练使用也太out了,快来看看你都”学废“了吗? getOrDefault 这个方法名很直观,见名知意:尝试获取key对应的值,如果未获取到,就返回默认值。看一个使用的例子,新写法会比老写法更加简洁: private   static   void   testGetOrDefault ()   {     Map  map =  new  HashMap < >( 4 );     map.put( "123" ,  "123" );     String key =  "key" ;     String defaultValue =  "defaultValue" ;      // 老写法     String oldValue = defaultValu ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览