加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy学习笔记——用inject方法构造Map

发布时间:2020-12-14 16:52:48 所属栏目:大数据 来源:网络整理
导读:转自:http://johnnyjian.iteye.com/blog/438013 假设我们有两个List,分别是a和b,a和b的长度相同,现在我们想把a的每个元素作为key,b中对应的元素作为value,构造一个Map,应该怎么写呢?? 最直接的想法,先建立一个空的Map,然后往里面添加key-value对,

转自:http://johnnyjian.iteye.com/blog/438013

假设我们有两个List,分别是a和b,a和b的长度相同,现在我们想把a的每个元素作为key,b中对应的元素作为value,构造一个Map,应该怎么写呢??

最直接的想法,先建立一个空的Map,然后往里面添加key-value对,代码如下(运用了我在 http://johnnyjian.iteye.com/blog/271554中提到的同时迭代多个List的技巧):?
Java代码??

收藏代码

  1. def?a?=?[1,?2,0)">3]??
  2. def?b?=?[4,0)">5,0)">6]??
  3. ??
  4. def?m?=?[:]??
  5. [a,?b].transpose().each?{?k,?v?->?m?+=?[(k):?v]?}??
  6. assert?m?==?[1:?2:?3:?6]??


但是,其实我们可以通过inject方法,把代码缩减为一行:?
def?m?=?[a,?b].transpose().inject([:])?{?s,?l?->?s?+?[(l[0]):?l[1]]?}??
  • 6]??
  • 以上代码在Groovy 1.6.4下测试通过。

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

      推荐文章
        热点阅读