Java 8ストリームは強力ですが、並列処理が不要な場合は、Kotlin Sequenceを使用する方が簡単です。
あなたに変換する方法はありますか? stream.sequencial()
シーケンスに?
回答:
回答№1は6Kotlinには拡張メソッドがあります asSequence()
JavaストリームをKotlinシーケンスに変換します。私の経験では、インポートステートメントを追加するまでは検出できませんでした。
import kotlin.streams.*
次に、単に期待どおりに使用します。
val seq = stream.asSequence()
回答№2の16
ストリームからイテレータを取得し、イテレータをラップして Sequence
:
Sequence { stream.iterator() }
UPD: Kotlin 1.1からは、 Stream.asSequence()
拡張子 マイケル・リチャードソンの答え)、これは上記とまったく同じことをします。特別なストリームの拡張も利用できます。 IntStream
, LongStream
そして DoubleStream
.
それはに位置しています kotlin.streams
〜のパッケージ kotlin-stdlib-jdk8
ライブラリ(Kotlin 1.2以上)または kotlin-stdlib-jre8
ライブラリ(Kotlin 1.1のみ、Kotlin 1.2以降では非推奨)。