2013-10-28 58 views
5

我想從List中填充Map。這是我正在做的。使用collect closure方法在groovy中填充HashMap

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解決。

回答

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} 
+0

太棒了!這正是我想要的! – Wizard

相關問題