Tag: 序列

Unweave序列,Kotlinfunction/流式习语

我有一个交错的数据序列(与固定步幅),我想减少它为每个“结构”(n *跨度价值n值)单个值。 我可以使用循环写入到可变列表中,并为读者索引选定步骤,但是我正在寻找更多的function和可读的方法。 有什么想法吗? 例如:输入序列由RGB三元组(步幅3)组成,输出为灰度。 命令的方式是这样的: fun greyscale(stream:List):List{ val out = ArrayList(stream.size / 3) var i = 0; var o = 0 while(i < stream.size) out[o++]=(stream[i++] + stream[i++] + stream[i++])/3 return out } 我怎么能没有明确地实现一个函数和可变容器,而是纯粹的function扩展如.map等?

我如何在Kotlin中无限重复一个序列?

我想在一个Sequence无限重复T元素。 这不能使用kotlin.collections.asSequence完成。 例如: val intArray = intArrayOf(1, 2, 3) val finiteIntSequence = intArray.asSequence() val many = 10 finiteIntSequence.take(many).forEach(::print) // 123 这不是我想要的。 我期望某种types的kotlin.collections.repeat函数存在,但没有,所以我自己实现了一个(例如对于这个IntArray ): var i = 0 val infiniteIntSequence = generateSequence { intArray[i++ % intArray.size] } infiniteIntSequence.take(many).forEach(::print) // 1231231231 这是非常必要的,所以我觉得必须有一个更实用,更不详细的方法来做到这一点。 如果存在的话,那么Kotlin的标准方法是什么?重复收集/排列a(n)(in)有限的时间?