将关联数组转换为Groovy中的映射

sme*_*eeb 3 groovy

我有两个String[]相同的长度.它们是"关联数组",意思是一个字符串的值是,另一个字符串值是:

String[] keys = { 'fizz', 'buzz', 'bupo' }
String[] values = { 'true', 'false', 'yes' }
Run Code Online (Sandbox Code Playgroud)

我想把这两个关联数组转换成一个Map<String,String>带有一些Groovy魔法的数组.到目前为止,我已经尝试了以下但它不起作用:

Map<String,String> kvPairs = [keys, values]
Run Code Online (Sandbox Code Playgroud)

我出错的任何想法?

Uro*_*s K 6

你可以这样做:

String[] keys = [ "fizz", "buzz", "bupo" ] 
String[] vals = [ "true", "false", "yes" ]
Map<String, String> kvPairs = [ keys, vals ].transpose()?.collectEntries()?
Run Code Online (Sandbox Code Playgroud)

结果:

[fizz:true, buzz:false, bupo:yes]
Run Code Online (Sandbox Code Playgroud)