使用collect闭包方法在groovy中填充HashMap

时间:2013-10-28 02:59:22

标签: groovy arraylist hashmap closures collect

我正在尝试从列表填充地图。这就是我在做什么。

itemNoList = [1,2,3,4]
bookMap = [:]
bookMap = itemNoList.collect{ [ (it) : it+1 ] }

当我这样做时,bookMap变为ArrayList类型,现在有一个HashMap列表。

bookMap现在是[{1=2}, {2=3}, {3=4}, {4=5}],即地图列表。

如何使用collect方法从ArrayList获取HashMap?使用each代替collect可以很容易地解决这个问题,但我只是好奇它是否可以使用collect来解决。

1 个答案:

答案 0 :(得分:11)

你很幸运! collectEntries方法的处理方式与collect类似,但对于Map!

groovy:000> itemNoList = [1, 2, 3, 4]
===> [1, 2, 3, 4]
groovy:000> itemNoList.collectEntries { [(it): it+1] }
===> {1=2, 2=3, 3=4, 4=5}