Collection に対する呼び出しチェーンで、シーケンスに変換すべきものを報告します。
Collection を変換する関数 (map() や filter() など) は、それぞれが内部で新しい Collection (一般的には List または Set) を作成します。
結果的に生じる呼び出しが複数個あり、かつ Collection 内の項目数が多い場合、膨大なメモリトラフィックが発生する可能性があります。
このような場合は、Sequence を使用することをお勧めします。
例:
class Entity(val key: String, val value: String)
fun getValues(lines: List<String>) = lines
.filter { it.isNotEmpty() }
.map { it.split(',', limit = 2) }
.filter { it.size == 2 }
.map { Entity(it[0], it[1]) }
クイックフィックスを使用すると、呼び出しチェーンが asSequence() と toList() にラップされます。
class Entity(val key: String, val value: String)
fun getValues(lines: List<String>) = lines
.asSequence()
.filter { it.isNotEmpty() }
.map { it.split(',', limit = 2) }
.filter { it.size == 2 }
.map { Entity(it[0], it[1]) }
.toList()