5

我正在尝试从列表中填充地图。这就是我正在做的事情。

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.

4

1 回答 1

12

你很幸运!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}
于 2013-10-28T03:26:44.363 回答