list - 在 Scala 中向后迭代两个列表(不同长度)

标签 list scala loops

在 Scala 中向后迭代两个列表(不同长度)的最有效方法是什么。

所以对于两个列表

List(a,b,c) and List(1,2)

这对会是

(c,2) and (b,1)

注意:我不想对每个列表进行反向操作。

最佳答案

一个简单的方法是:

 List('a','b','c').reverse zip List(1,2).reverse

然而,如果您担心效率,则反转列表是 O(n)

根据列表scaladoc , 使用 reverseIterator 可能 效率更高。这样您就不会像使用 reverse 那样创建新列表,而是在不断迭代时遍历它。那会是:

val it = list1.reverseIterator zip list2.reverseIterator  //returns an Iterator you can force
it.toList // List((c,2), (b,1))

关于list - 在 Scala 中向后迭代两个列表(不同长度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21465844/

相关文章:

.net - 是否可以让 .NET List<T> 显示在 VBA 中?

scala - 具有多个参数列表的 Scala 方法中的尾递归

php - MySQL 将表与结果中的原始信息连接起来

scala - Play-json 2.7.1 : java. lang.NoSuchMethodError

javascript - 用 # 替换所有字符,最后 4 个字符除外

python - 通过 python 从大文件中搜索并定位某个部分中重复的唯一元素

list - Haskell——检查列表的最后一项

c++ - 删除具有指针列表的对象并不能真正释放相应的内存

java - 使用 Java 写入文件

scala - 如何从Gradle执行Scala脚本?