Groovy   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在groovy中合并两个地图大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
题:
如何合并地图,同时总结地图中公共密钥的值.

输入:

@H_696_10@[a: 10,b:2,c:3] [b:3,c:2,d:5]

产量

@H_696_10@[a:10,b:5,c:5,d:5]

扩展问题:
如何通过对2个映射中的公共键的值应用函数(ClosurE)来合并原始的2个映射.即,而不是简单地总结公共密钥的值,让用户指定要使用的@L_607_2@.

例如:如果用户想要使用’min’函数而不是求和,那么可以指定min来得到[a:10,b:2,c:2,d:5]作为结果.

解决方法

你可以使用inject with?:for for map的值为null:

@H_696_10@map1 = [a:10,c:3] map2 = [b:3,d:5] (map1.keySet() + map2.keySet()) .inject([:]) {m,k -> m[k] = (map1[k] ?: 0) + (map2[k] ?: 0); m }

评估为

@H_696_10@[a:10,d:5]

或者你可以使用COllectEntries(这样的闭包不是那么难看):

@H_696_10@map1 = [a:10,d:5] (map1.keySet() + map2.keySet()) .collectEntries {[(it) : (map1[it] ?: 0) + (map2[it] ?: 0)]}

为了使这个通用,允许传入一个闭包.但是collectEntries已经允许了这一点,你获得的收益并不高.

大佬总结

以上是大佬教程为你收集整理的如何在groovy中合并两个地图全部内容,希望文章能够帮你解决如何在groovy中合并两个地图所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。