Groovy允许您使用功能方法解决此问题.通过应用映射变换,您可以生成包含数字的对列表,无论它是偶数还是奇数.
所有groovy列表都有一个方法,collect用于在每个元素上映射闭包.返回值是一个列表,其中包含在每个元素上调用闭包的结果.例如:
[1, 2, 3, 4].collect {
[it, it % 2 ? 'odd' : 'even']
}
===> [[1:odd], [2:even], [3:odd], [4:even]]
Run Code Online (Sandbox Code Playgroud)
这导致对列表(实际上是2个元素列表).希望结果是地图而不是列表是很常见的,而groovy有一个专门的版本collect,collectEntries只为此而调用.这是一个返回地图的替代方案:
[1, 2, 3, 4].collectEntries {
[it, it % 2 ? 'odd' : 'even']
}
===> {1=odd, 2=even, 3=odd, 4=even}
Run Code Online (Sandbox Code Playgroud)