如何将java.util.stream.Stream 转换成kotlin.Sequence

Java 8 Streamsfunction强大,但是当不需要并行时,Kotlin Sequence似乎更简单易用。

有没有办法将一个stream.sequencial()转换成一个序列?

您可以从流中获取迭代器,然后将迭代器包装到序列中:

 Sequence { stream.iterator() } 

Kotlin有一个扩展方法asSequence()将Java流转换为Kotlin序列。 根据我的经验,直到我添加了一个导入语句才被发现:

 import kotlin.streams.* 

然后简单地按照预期使用:

 val seq = stream.asSequence()