Java中是否有Python的zip()函数的等效替代方案?

48

我有两个 List 对象,想要像 Python 中的 zip() 函数一样将它们配对。我相信 JDK 中没有这种功能,但是是否有类似于 Apache Commons 集合 的广泛使用的库中也有这样的功能呢?谢谢。


我对Python和zip的使用不是很熟悉,但是快速浏览让我认为,来自Collections库的ListUtils应该能解决问题。 combinedList = ListUtils.union(list1, list2) ; 遍历合并后的列表。 https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/ListUtils.html#union(java.util.List,%20java.util.List) - trappski
@trappski,那只是List.addAll的包装器,无法解决问题。 - micseydel
1个回答

24

Functional Java拥有与Haskell或Scala相似的zip, zipWithzipIndex功能。(事实上,作者几乎都是Haskell程序员。)


2
实际上,我链接的版本是一流的版本。(我无法弄清楚如何链接到另一个版本,而不让Markdown吞噬链接。)换句话说:它不是zipWith 函数,而是一个返回zipWith函数的函数。真正的 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列表。 - Jörg W Mittag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接