【问题标题】:Is there an accepted Java equivalent to Python's zip()? [duplicate]是否存在与 Python 的 zip() 等效的公认 Java? [复制]
【发布时间】:2011-01-08 07:16:01
【问题描述】:

我有两个 List 对象,我想将它们配对,就像 Python 中的 zip() 函数一样。我很确定这在 JDK 中不可用,但是在一个相当广泛的库中是否有类似的东西,类似于Apache Commons Collections?谢谢。

【问题讨论】:

  • 不精通 Python 以及如何使用 zip,但快速浏览一下让我觉得 Collections 库中的 ListUtils 应该可以解决问题。组合列表 = ListUtils.union(list1, list2) ;迭代组合列表。 commons.apache.org/proper/commons-collections/apidocs/org/…
  • @trappski,这只是 List.addAll 的包装器,不能解决问题。

标签: java collections


【解决方案1】:

Functional Java 具有 zipzipWithzipIndex,就像您对 Haskell 或 Scala 所期望的那样。 (事实上​​,作者几乎都是 Haskell 程序员。)

【讨论】:

  • 其实我链接的版本是一流的。 (如果没有 Markdown 吞噬链接,我无法弄清楚如何链接到另一个版本。) IOW:这不是 zipWith function 它是一个 returns 的函数zipWith 函数。 real zipWith 的签名是public <B,C> List<C> zipWith(List<B> bs, F2<A,B,C> f),与Haskell 的签名基本相同:(a → b → c) → [a] → [b] → [c]。它需要一个 as 列表(隐式 this)、一个 bs 列表和一个从 a 和 b 到 c 的函数,并返回一个 cs 列表。
猜你喜欢
  • 2019-06-13
  • 1970-01-01
  • 2010-11-30
  • 2013-06-07
  • 2010-12-19
  • 1970-01-01
  • 2012-12-01
  • 1970-01-01
  • 2011-04-07
相关资源
最近更新 更多