【发布时间】:2019-08-08 10:20:33
【问题描述】:
我有一个迭代器,它以某种排序顺序包含我需要的所有数据。我想对每个数据元素执行一些操作,考虑到迭代器中的前后元素。 IE。我有一个函数,给定 n 个元素,将参数 f(iter(k-1), iter(k), iter(k+1)) 用于 0 < k < n-1。
当然,我不能只遍历迭代器,因为我在调用函数时无法访问 k + 1 元素。
我可以把整个事情做一个列表并使用索引,但这会很不雅。 Scala 访问这些值的方式是什么?我可以以某种方式将迭代器与自身和偏移量组合在一起吗?
【问题讨论】:
-
Scala 集合具有
sliding方法。迭代器也应该有它们,但我不确定这个。 -
您可能可以使用列表中的 zipWithIndex 方法。但是,创建元组是一项昂贵的操作,您可以使用视图来代替。请参考stackoverflow.com/a/6833653/7803797
-
你可以试试这个方法:stackoverflow.com/questions/53378160/…
-
如果迭代器的元素少于三个,预期的行为是什么?