2016-04-27 5 views
10

Java 8ストリームは強力ですが、並列処理が不要な場合は、Kotlin Sequenceを使用する方が簡単です。java.util.stream.Streamを<Something>に変換する方法kotlin.Sequence

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

+0

この例はまた、HTTPの一部を「レイジーの滞在」の下に記載されている。そして、予想通り単に使用

import kotlin.streams.* 

:私はimport文を追加するまで、私の経験では発見できませんでした://stackoverflow.com/questions/35721528/how-can-i-call-collectcollectors-tolist-on-a-java-8-stream-in-kotlin/35722167#35722167 –

答えて

13

あなたは、ストリームからイテレータを取得し、シーケンスにイテレータをラップすることができます:

Sequence { stream.iterator() } 
+1

素晴らしい!私はイテレータ .asSequence()があるので、私は言うことができます参照してください:stream.iterator()。asSequence() – atok

+3

はい、ほとんど同じです。相違点は、 'iterator()'関数がStream、直ちに呼び出されるとき(asSequence()、lazily( 'Sequence {}')のとき)です。 – Ilya

0

KotlinはKotlinシーケンスにJavaストリームを変換する拡張メソッドasSequence()を持っています。

val seq = stream.asSequence() 
関連する問題