如何将java.util.stream.Stream<Something>转换为kotlin。顺序<某件事>
2022-09-03 12:47:57
Java 8 Streams功能强大,但是当不需要并行性时,Kotlin Sequence似乎更易于使用。
有没有办法将 a 转换为序列?stream.sequencial()
Java 8 Streams功能强大,但是当不需要并行性时,Kotlin Sequence似乎更易于使用。
有没有办法将 a 转换为序列?stream.sequencial()
您可以从流中获取迭代器,然后将迭代器包装为 :Sequence
Sequence { stream.iterator() }
UPD:从 Kotlin 1.1 开始,你可以使用扩展(参见 Michael Richardson 的答案),它的作用与上面完全相同。该扩展也可用于专用流:、 和 。Stream.asSequence()
IntStream
LongStream
DoubleStream
它位于库(Kotlin 1.2 及更高版本)或库(仅限 Kotlin 1.1,在 Kotlin 1.2 及更高版本中已弃用)的包中。kotlin.streams
kotlin-stdlib-jdk8
kotlin-stdlib-jre8
Kotlin 有一个扩展方法 asSequence()
将 Java 流转换为 Kotlin Sequence。根据我的经验,在我添加导入语句之前,它是不可发现的:
import kotlin.streams.*
然后只需按预期使用:
val seq = stream.asSequence()