List 是否有与Ruby';s#地图?

List 是否有与Ruby';s#地图?,list,collections,map,groovy,List,Collections,Map,Groovy,我意识到每个人都有支持 甚至还有 是否支持Groovy开箱即用的#map(没有任何类似的特殊库) 您需要收集 groovy:000> [1,2,3,4].collect { num -> num + 1 } ===> [2, 3, 4, 5] 我希望这会有所帮助。您可以使用collect,如中所示 [1, 2, 3, 4].collect { it + 1 } 对于直接在集合中的每个对象上调用方法的情况,有一个使用扩展点运算符的较短语法: [1, 2, 3, 4]*.plu

我意识到每个人都有支持

甚至还有

是否支持Groovy开箱即用的#map(没有任何类似的特殊库)


您需要
收集

groovy:000> [1,2,3,4].collect { num -> num + 1 }
===> [2, 3, 4, 5]

我希望这会有所帮助。

您可以使用collect,如中所示

[1, 2, 3, 4].collect { it + 1 }
对于直接在集合中的每个对象上调用方法的情况,有一个使用扩展点运算符的较短语法:

[1, 2, 3, 4]*.plus 1 
(使用Groovy添加到java.lang.Integer的方法来实现
+
运算符)

即使列表中包含空值,此运算符也有效:

groovy:000> [1, 2, 3, null, 4]*.plus 1
===> [2, 3, 4, null, 5]
在哪里,您必须使用collect检查:

[1, 2, 3, null, 4].collect { it?.plus 1 }
[1, 2, 3, 4]*.plus 1 
groovy:000> [1, 2, 3, null, 4]*.plus 1
===> [2, 3, 4, null, 5]
[1, 2, 3, null, 4].collect { it?.plus 1 }