小编use*_*362的帖子

Kotlin:流与序列 - 为什么有多种方法来做同一件事?

为什么在 Kotlin 中有多种方法可以做同样的事情,这是有原因的吗?

val viaSequence = items.asSequence()
    .filter { it%2 == 0 }
    .map { it*2 }
    .toList()
println(viaSequence)

val viaIterable = items.asIterable()
    .filter { it%2 == 0 }
    .map { it*2 }
    .toList()
println(viaIterable)

val viaStream = items.stream()
    .filter { it%2 == 0 }
    .map { it*2 }
    .toList()
println(viaStream)
Run Code Online (Sandbox Code Playgroud)

我知道以下代码在每个步骤上都会创建一个列表,这会增加 GC 的负载,因此应该避免:

items.filter { it%2 == 0 }.map { it*2 }
Run Code Online (Sandbox Code Playgroud)

functional-programming sequence kotlin java-stream

12
推荐指数
2
解决办法
1万
查看次数