我的原始列表看起来像
def l = [a:apple, a:application, b:batch, c:commandLine, c:crash]
我需要将其转换为
[ ["a":"apple"],["a":"application"],["b":"batch"],["c":"commandLine"],["c":"crash"] ]
如何转换它?
答案 0 :(得分:1)
您输入的列表不是无效的Groovy,因此(至少)有两种可能的假设:
如果您的输入是地图,例如:
def l = [a: 'apple', b: 'batch']
你可以这样做:
l.collect { k,v -> [(k): v] }
如果您的输入是类似地图字符串的列表,例如:
def l = ['a:apple', 'b:batch']
你需要这样的东西:
l.collect {
def tokens = it.split(/:/)
[(tokens[0]): tokens[1]]
}
<强>更新强>
或者更简单的方法:
l.collect { it.split(/:/).toSpreadMap() }
结尾