当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Scala AbstractIterator.sliding用法及代码示例


sliding 方法(或属性)属于 scala.collection.AbstractIterator 类(class),其相关用法说明如下。

用法:

def sliding[B >: A](size: Int, step: Int): GroupedIterator[B]

返回一个迭代器,它显示了这个迭代器的 "sliding window" 视图。第一个参数是窗口大小,第二个参数step 是每次迭代时窗口前进多远。 step 默认为 1

返回的 GroupedIterator 可以配置为将部分结果填充到 size 大小或完全抑制部分结果。

示例用法:

// Returns List(ArraySeq(1, 2, 3), ArraySeq(2, 3, 4), ArraySeq(3, 4, 5))
(1 to 5).iterator.sliding(3).toList
// Returns List(ArraySeq(1, 2, 3, 4), ArraySeq(4, 5))
(1 to 5).iterator.sliding(4, 3).toList
// Returns List(ArraySeq(1, 2, 3, 4))
(1 to 5).iterator.sliding(4, 3).withPartial(false).toList
// Returns List(ArraySeq(1, 2, 3, 4), ArraySeq(4, 5, 20, 25))
// Illustrating that withPadding's argument is by-name.
val it2 = Iterator.iterate(20)(_ + 5)
(1 to 5).iterator.sliding(4, 3).withPadding(it2.next).toList

值参数:

size

每组的元素数量

step

连续组的第一个元素之间的距离

返回:

如果剩余要分组的元素少于 size 元素,则生成大小为 sizeSeq[B]GroupedIterator 除了最后一个元素(可能是唯一的元素)将被截断.可以配置此行为。

注意:

重用:调用此方法后,应丢弃调用它的迭代器,只使用返回的迭代器。使用旧迭代器是未定义的,可能会发生变化,并且也可能导致对新迭代器的更改。

继承自:

collection.Iterator.sliding

源码:

Iterator.scala

相关用法


注:本文由纯净天空筛选整理自scala-lang.org大神的英文原创作品 AbstractIterator.sliding。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。