2016-04-27 19 views
10

जावा 8 स्ट्रीम शक्तिशाली हैं लेकिन जब समांतरता की आवश्यकता नहीं होती है तो कोटलिन अनुक्रम का उपयोग करना आसान लगता है।java.util.stream.Stream <Something> को कोटलिन में कैसे परिवर्तित करें। सिक्योरिटी <Something>

क्या stream.sequencial() को अनुक्रम में परिवर्तित करने का कोई तरीका है?

+0

इस का एक उदाहरण यह भी उल्लेख किया है "रहकर लेज़ी" भाग के तहत http : //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()। Asequence() – atok

+3

हां, यह लगभग वही है। यहां अंतर यह है कि 'इटरेटर()' फ़ंक्शन स्ट्रीम पर तुरंत लागू किया जाता है, '(समानता() ') या आलसी (' अनुक्रम {} ')। – Ilya

0

Kotlin एक विस्तार विधि asSequence() एक Kotlin अनुक्रम करने के लिए एक जावा धारा परिवर्तित करने के लिए है। मेरे अनुभव में यह पता लगाने योग्य जब तक मैं एक आयात बयान जोड़ा नहीं था:

import kotlin.streams.* 

तो बस उम्मीद के रूप में उपयोग:

val seq = stream.asSequence() 
संबंधित मुद्दे