我想要一些苏尔坦:
将行映射到映射(行){
def rowMap=[:];
row.columns.each{rowMap[it.name]=it.val}
返回行映射;
}
考虑到GDK的工作方式,我希望能够做到以下几点:
将行映射到映射(行){
row.columns.collectMap{[it.name,it.val]}
}
但我在文件里什么都没看到。。。我错过什么了吗?还是我太懒了
我最近遇到了这样的需要:将列表转换为地图。这个问题是在Groovy 1.7.9版发布之前发布的,因此方法collectEntries还不存在。它的工作原理与所提出的collectMap方法完全相同:
将行映射到映射(行){
row.columns.collectEntries{[it.name,it.val]}
}
如果出于某种原因,您一直使用较旧的Groovy版本,那么也可以使用inject方法(如本文所建议的)。这是一个稍加修改的版本,在闭包中只接受一个表达式(只是为了保存字符!):
将行映射到映射(行){
row.columns.inject([:]){map,col->;map<;[(col.name):col.val]}
}
也可以使用+运算符代替<<