我正在处理非常大的 Kotlin 序列,我在序列的每一步上执行逻辑,并且我不需要将整个序列保留在内存中。
目前我的代码如下所示
hugeSequence
.filter { ... }
.map {...... }
.onEach {
callExpensiveOperation(it)
}
.toList() <- this feels wrong
Run Code Online (Sandbox Code Playgroud)
底部toList()是terminal运算符,但我担心 Kotlin 可能会尝试在内存中创建一个巨大的列表,然后才意识到我什至没有分配该操作的结果值。
我可以使用任何其他终端操作符来触发序列启动吗?
使用forEach而不是onEach. 它是 的终端等效项onEach。
hugeSequence
.filter { ... }
.map {...... }
.forEach {
callExpensiveOperation(it)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |