如何在groovy中为hashmap添加相同键值列表

92vpleto  于 2023-04-29  发布在  其他
关注(0)|答案(1)|浏览(157)

需要关联特定键的值列表
例如,

​listTags= ['A:1.1.1.1', 'B:1.1.2.1', 'C:1.1.3.1', 'B:1.1.4.1']

tags = [ : ]

listTags.each { it ->

  tags.put(it.split(':')[0], it.split(':')[1] )

}

println tags

结果:[A:1.1.1.1, B:1.1.4.1, C:1.1.3.1]
预期结果:[A:1.1.1.1, B:[1.1.2.1, 1.1.4.1] , C:1.1.3.1]
有什么建议吗?谢谢

f3temu5u

f3temu5u1#

你可以使用inject来实现这一点。
在这里,我们拆分列表中的所有字符串,然后从一个空Map开始,为每个键将值追加到列表中

​listTags= ['A:1.1.1.1', 'B:1.1.2.1', 'C:1.1.3.1', 'B:1.1.4.1']

def result = listTags*.split(':')
    .inject([:].withDefault {[]}) { m, v ->
      m[v[0]] << v[1]
      m
    }​​​

相关问题