Yml文件配置list map(yml文件配置对象)

Yml文件配置list map(yml文件配置对象)p p blockquote id 35EI9BM6 Java 精选面试题 微信小程序 5000 道面试题和选择题 真实面经 简历模版 包含 Java 基础 并发 JVM 线程 MQ 系列 Redis Spring 系列 Elasticsearc Docker K8s Flink Spark 架构设计 大厂真题等 在线随时刷题 lt blockquote

大家好,我是讯享网,很高兴认识大家。




讯享网

                <p><blockquote id="35EI9BM6">Java精选面试题 (微信小程序): 5000+ 道面试题和选择题, 真实面经 , 简历模版 ,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计、大厂真题等,在线随时刷题!</blockquote></p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1108%2F7f85d078j00smly3z0055d200u000fvg00it009x.jpg&thumbnail=660x2147483647&quality=80&type=jpg"/><br/></p><p id="35EI9BKM">Map的数据操作,你是不是还只会put、get?</p><p id="35EI9BKN">Map是我们日常编程中十分常用的数据接口,的在JDK8中,Map引入了几个新方法,可以简化我们对Map中数据的操作。</p><p id="35EI9BKO">目前JDK的最新LTS版本已经更新到21了,这几个在JDK8引入的Map”新“方法其实也是”老“方法了,还没熟练使用也太out了,快来看看你都”学废“了吗?</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1108%2F06637635j00smly40001md200i800g7g009e008c.jpg&thumbnail=660x2147483647&quality=80&type=jpg"/><br/>getOrDefault<br/></p><p id="35EI9BKP">这个方法名很直观,见名知意:尝试获取key对应的值,如果未获取到,就返回默认值。</p><p id="35EI9BKQ">看一个使用的例子,新写法会比老写法更加简洁:</p><pre></pre>foreach</p><p id="35EI9BKR">看方法名也可以知道,这个方法是遍历map的数据使用的。</p><p id="35EI9BKS">如果没有foreach,我们遍历map的时候一般是使用增强for循环,有了这个方法后,可以更加方便使用entry中的key和val:</p><pre></pre>merge</p><p id="35EI9BKT">从名字可以想到,是合并entry使用的,但是具体是怎么合并呢?</p><p id="35EI9BKU">看一下日常最常用的Map实现类HashMap对merge方法的实现。</p><p><blockquote id="35EI9BM7">推荐划水摸鱼神器: https://www.yoodb.com/slack-off/home.html</blockquote></p><pre></pre></p><p id="35EI9BKV">代码比较长,但是实现的效果比较容易描述:这个方法接收3个参数:key、value、function。</p><p><ul><li id="35EI9BLV"></p><p id="35EI9BL0">如果key存在,将value按照function做1次计算后,更新到Map中</p><p></li><li id="35EI9BM0"></p><p id="35EI9BL1">如果key不存在,将key-value放入Map中</p><p></li></ul></p><p id="35EI9BL2">这个方法在某些场景中挺好用的,代码简洁易懂,例如:我们有1个List,要统计List中每个元素出现的次数。我们要实现的逻辑是,遍历List中的每个元素,如果这个元素在Map中存在,Map中的值+1;如果不存在,则放入Map中,次数(值)为1。</p><pre></pre></p><p id="35EI9BL3">可以看到我们使用merge方法的话,只用1行就简洁实现了这个逻辑。</p><p>putIfAbsent</p><p id="35EI9BL4">也是一个见名知意的方法:不存在key或者值为null时,才将键值对放入Map。跟put方法相比,这个方法不会直接覆盖已有的值,在不允许覆盖旧值的场景使用起来会比较简洁。</p><pre></pre>computer</p><p id="35EI9BL5">computer方法需要传入2个参数:key、function。主要有3步操作</p><p><ul><li id="35EI9BM1"></p><p id="35EI9BL6">获取到key对应的oldValue,可能为null</p><p></li><li id="35EI9BM2"></p><p id="35EI9BL7">经过function计算获取newValue</p><p></li><li id="35EI9BM3"></p><p id="35EI9BL8">put(key, newValue)</p><p></li></ul></p><p id="35EI9BL9">还是以刚刚统计单次次数需求为例,看一下computer的写法:</p><pre></pre>computeIfAbsent</p><p id="35EI9BLA">看名字就知道是compute方法衍生出来的方法,这个方法只在key不存在的时候,执行computer计算,如果说key对应的value存在,就直接返回这个value。</p><p id="35EI9BLB">例如,我们需要计算斐波那锲数列的时候,可以使用这个方法来简化代码:</p><pre></pre>computeIfPresent</p><p id="35EI9BLC">这个是computeIfAbsent的姊妹方法,区别在于,这个方法是只有key存在的时候,才去执行computer计算和值的更新。</p><p>replace</p><p id="35EI9BLD">这个方法的效果是:</p><p><ul><li id="35EI9BM4"></p><p id="35EI9BLE">如果key存在,则更新值</p><p></li><li id="35EI9BM5"></p><p id="35EI9BLF">如果key不存在,什么也不做</p><p></li></ul>总结</p><p id="35EI9BLG">可以看到,这些JDK8引入的Map的方法,都可以在某些特定场景下简化我们的代码,虽然不嫌麻烦的话,put、get等方法都可以搞定,让我想起一张远古的图</p><p class="f_center"><img src="https://nimg.ws.126.net/?url=http%3A%2F%2Fdingyue.ws.126.net%2F2024%2F1108%2F2abe59baj00smly40000dd2008b0063g008b0063.jpg&thumbnail=660x2147483647&quality=80&type=jpg"/><br/></p><p id="35EI9BLH">不过在不同的场景使用不同的方法,尽量把代码写的简洁和优雅,才是一个程序猿不断追求的目标吧。</p><p><blockquote id="35EI9BM8">作者:podongfeng 来源:https://juejin.cn/post/7342420969879093299</blockquote></p><p id="35EI9BLK">公众号“Java精选”所发表内容注明来源的,版权归原出处所有(无法查证版权的或者未注明出处的均来自网络,系转载,转载的目的在于传递更多信息,版权属于原作者。如有侵权,请联系,笔者会第一时间删除处理!</p><p id="35EI9BLL">最近有很多人问,有没有<strong>技术或摸鱼</strong>交流群!加入方式很简单,公众号<strong>Java精选</strong>,回复“<strong>加群</strong>”,即可入群!在线摸鱼:https://www.yoodb.com/<br/></p><p id="35EI9BLM"><strong>Java精选面试题</strong>(微信小程序):<strong>3000+</strong>道面试题,包含Java基础、并发、JVM、线程、MQ系列、Redis、Spring系列、Elasticsearch、Docker、K8s、Flink、Spark、架构设计等,在线随时刷题!</p><p id="35EI9BLO">特别推荐:专注分享最前沿的技术与资讯,为弯道超车做好准备及各种开源项目与高效率软件的公众号,<strong>「大咖笔记」</strong>,专注挖掘好东西,非常值得大家关注。<strong>点击下方公众号卡片关注</strong>。</p><p id="35EI9BLS">文章有帮助的话,点在看,转发吧!</p>

讯享网
小讯
上一篇 2025-05-08 12:40
下一篇 2025-06-12 08:50

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/185532.html