/ / java.util.stream.Stream <Something>をkotlin.Sequence <Something>に変換する方法 - java、java-stream、kotlin

java.util.stream.Stream <Something>をkotlin.Sequence <Something>に変換する方法 - java、java-stream、kotlin

Java 8ストリームは強力ですが、並列処理が不要な場合は、Kotlin Sequenceを使用する方が簡単です。

あなたに変換する方法はありますか? stream.sequencial() シーケンスに?

回答:

回答№1は6

Kotlinには拡張メソッドがあります 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以降では非推奨)。