在Groovy中有Scala'zip'功能的模拟吗?

Ser*_*iss 34 groovy scala

在Scala中我可以这样写:

val a = List(1, 2, 3)
val b = List(4, 5)
println(a zip b)
Run Code Online (Sandbox Code Playgroud)

这将产生List((1,4), (2,5))输出.
现在我在Groovy中有两个集合,并希望以类似的方式压缩它们.最简单的方法是什么?

epi*_*ian 46

Groovy的等效Scala的的zipList#transpose,它可以列出的名单上被称为:

assert [[1, 2, 3], [4, 5]].transpose() == [[1, 4], [2, 5]]
Run Code Online (Sandbox Code Playgroud)

  • 我不确定为什么Groovy家伙决定重命名所有这些着名的功能原语. (22认同)
  • 请注意,Scala也有转置,但要求列表大小相同,而Groovy截断(如`zip`确实). (4认同)
  • @AndresJaanTack Groovy实际上从Ruby中获取了所有这些函数名称. (2认同)
  • 这有点好奇,因为[Ruby实际上有拉链](http://ruby-doc.org/core-2.3.0/Array.html#method-i-zip)...我也查了一下, Ruby的`filter`被称为`select`,而Groovy的`findAll` ......并且Ruby都没有`findAll`也没有Groovy有`select` (2认同)