2016-04-27 23 views
10

Java 8 Akımlar güçlüdür ancak paralellik gerekmediğinde Kotlin Sekansı kullanımı daha basit görünmektedir.java.util.stream.Stream <Something> dönüştürmek için kotlin.Sequence <Something>

stream.sequencial()'u bir Sırasına dönüştürmenin bir yolu var mı?

+0

bunun bir örneğidir da belirtilir http : //stackoverflow.com/questions/35721528/how-can-i-call-collectcollectors-tolist-on-a-java-8-stream-in-kotlin/35722167#35722167 –

cevap

13

Bir akıştan bir yineleyici almak ve daha sonra bir Sıra içine yineleyici sarabilirsiniz:

Sequence { stream.iterator() } 
+1

Harika! Iterator .asSequence() olduğunu da görebiliyorum, diyelim ki: stream.iterator(). AsSequence() – atok

+3

Evet, neredeyse aynı. Buradaki fark, "iterator()" işlevinin derhal Aktarım üzerinde (hemen hemen ('ınSequence()') veya tembelce ("Sıra {}") çağrılmasıdır. – Ilya

0

Kotlin bir Kotlin Dizi için bir Java akışı dönüştürmek için bir uzantısı yöntemi asSequence() sahiptir. Ben bir import ifadesi eklendi kadar benim durumumda bu keşfedilebilir değildi:

import kotlin.streams.* 

Sonra sadece beklendiği gibi kullanın: ait "Staying Tembel" kısmının altına

val seq = stream.asSequence() 
İlgili konular