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

Wiz*_*ard 5 groovy closures arraylist hashmap collect

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

itemNoList = [1,2,3,4]
bookMap = [:]
bookMap = itemNoList.collect{ [ (it) : it+1 ] }
Run Code Online (Sandbox Code Playgroud)

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

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

我怎样才能使用collect方法从ArrayList获取HashMap ?通过使用each替代方法很容易解决这个问题collect,但我只是好奇它是否可以使用collect.

doe*_*eri 11

你很幸运!该collectEntries方法处理工作就像collect一个地图!

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}
Run Code Online (Sandbox Code Playgroud)