मेरे पास एक स्कैला फ़ंक्शन foo(bs : Stream[Bar]) : Bat
है जिसे मुझे जावा कोड से कॉल करने की आवश्यकता है। मैं जावा में "बीएस" स्ट्रीम (Stream[Bar]
) कैसे बना सकता हूं और आलसी रूप से इसकी बार ऑब्जेक्ट्स उत्पन्न करता हूं?जावा में स्कैला स्ट्रीम को तुरंत चालू और पॉप्युलेट कैसे करें?
उत्तर
क्या धारा में होने की जरूरत है पर निर्भर करता है, यह एक java.util.Iterator
बनाने और उसके बाद में बदलने के लिए सबसे आसान हो सकता है के माध्यम से एक Stream
एक scala.collection.Iterator
:
import scala.collection.JavaConverters;
import scala.collection.immutable.Stream;
...
List<String> list = new ArrayList<String>();
\\ Fill the list somehow...
Iterator<String> it = list.iterator();
Stream<String> stream = JavaConverters.asScalaIteratorConverter(it)
.asScala().toStream();
इटेटर को संग्रह से नहीं आना है, निश्चित रूप से-हम अपने स्वयं के इटरेटर को लागू करके आसानी से एक अनंत स्ट्रीम बना सकते हैं:
Stream<String> stream = JavaConverters.asScalaIteratorConverter(
new Iterator<String>() {
int i = 0;
public boolean hasNext() { return true; }
public void remove() { throw new UnsupportedOperationException(); }
public String next() { return Integer.toString(i++); }
}
).asScala().toStream();
यह Stream.iterate(0)(_ + 1).map(_.toString)
जैसा कुछ नहीं है, लेकिन यह काम करता है।
उपयोग करने में बहुत आसान है। धन्यवाद! –
आप
scala.collection.immutable.Stream bs = new scala.collection.immutable.Stream()
की कोशिश की है?
मैंने यह स्पष्ट करने की कोशिश करने के लिए प्रश्न संपादित किया है कि मैं जावा-आधारित स्ट्रीम जनरेशन (केवल तात्कालिकता नहीं) का एक संपूर्ण उदाहरण ढूंढ रहा हूं –
Stream
ऑब्जेक्ट साथी पर उपलब्ध कारखानों में से एक का उपयोग करने का सबसे अच्छा तरीका है। उनमें से सबसे उपयोगी के लिए, आपको Function1
को भी लागू करने की आवश्यकता होगी, जो AbstractFunction1
को बढ़ाकर किया जा सकता है।
यहाँ एक उदाहरण है:
import scala.collection.immutable.Stream;
import scala.runtime.AbstractFunction1;
public class Ex {
public Stream<Integer> stream = Stream.iterate(0, new Increment());
}
class Increment extends AbstractFunction1<Integer, Integer> {
public Integer apply(Integer v1) {
return v1 + 1;
}
}
मैंने @Travis के उत्तर को स्वीकार किया क्योंकि यह मेरी विशेष समस्या का सबसे सरल उत्तर है, लेकिन यह मामला अधिक सामान्य मामले के लिए बहुत उपयोगी है। –
मुझे पता है तुम स्केला धारा देख रहे थे लेकिन वहाँ कार्यात्मक जावा भी है: http://functionaljava.googlecode.com/svn/artifacts/3.0/javadoc/fj/data/Stream.html
- 1. जेनिक्स का उपयोग कर जावा में संग्रह को तुरंत कैसे चालू करें?
- 2. जावा कोड को तुरंत कैसे खराब करें?
- 3. जावा कोड को तुरंत प्रोटोटाइप कैसे करें?
- 4. रनटाइम पर सरणी प्रकार दिए गए जावा सरणी को तुरंत कैसे चालू करें?
- 5. स्कैला एक कंपैनियन ऑब्जेक्ट को तुरंत चालू करने में विफल क्यों होता है?
- 6. एंड्रॉइड को एप्लिकेशन को तुरंत चालू करने में असमर्थ java.lang.ClassNotFoundException:
- 7. LinqToSql घोषित करें और DataContext सर्वोत्तम अभ्यास को तुरंत चालू करें?
- 8. ToolStripComboBox को कैसे पॉप्युलेट करें?
- 9. एक ArrayList <?> को तुरंत कैसे चालू करें और जावा के साथ प्रतिबिंब के माध्यम से कोई आइटम जोड़ें?
- 10. स्कैला स्ट्रीम प्रदर्शन
- 11. स्कैला को जावा में परिवर्तित करें (java.util.Set)?
- 12. जावा प्रतिबिंब के साथ एक नई वस्तु को तुरंत कैसे चालू करें, फिर उस पर एक विधि कॉल करें?
- 13. एनएसएसटींग को एनएसडीएटी में कैसे चालू करें?
- 14. हाइबरनेट पॉलीमोर्फिज्म: दाएं वर्ग को तुरंत चालू करना
- 15. स्कैला स्ट्रीम और उनकी मेमोरी उपयोग
- 16. SQLite3 और Rails 3.1 में REGEXP को कैसे चालू करें?
- 17. स्टडआउट (जावा) में सीर (सी ++) कैसे चालू हो सकता है?
- 18. सेलेनियम फ़ायरफ़ॉक्स ड्राइवर को तुरंत चालू करता है
- 19. स्कैला में, ऑब्जेक्ट के मानों को मानचित्र [स्ट्रिंग, स्ट्रिंग] में कैसे चालू करें?
- 20. एक HttpPostedFile को तुरंत चालू करने के लिए
- 21. डब्ल्यूसीएफ एमएसएमक्यू आईआईएस सेवा के साथ बाध्यकारी - सेवा को तुरंत कैसे चालू करें?
- 22. एक वर्ग के लिए एक सीडीआई/वेल्ड बीन को तुरंत कैसे चालू करें?
- 23. एक कन्स्ट्रक्टर के साथ एंड्रॉइड सेवा को तुरंत कैसे चालू करें?
- 24. प्रतिबिंब का उपयोग करके गतिशील रूप से एक प्रकार को तुरंत कैसे चालू करें?
- 25. सशर्त रूप से विभिन्न बाल कक्षाओं को तुरंत कैसे चालू करें?
- 26. उद्देश्य-सी रनटाइम रूट मेटाक्लास और अन्य कक्षा विवरणों को तुरंत कैसे चालू करता है?
- 27. परिणामस्वरूप नकली कैसे करें और जावा में मॉकिटो का उपयोग करके इसे पॉप्युलेट करें
- 28. पाइथन और जावा/स्कैला
- 29. स्ट्रीम-विपक्ष # :: स्कैला में अनुवाद कैसे किया जाता है?
- 30. जावा में स्ट्रीम वीडियो
कहाँ कि धारा से आता है? क्या आपके पास जावा संग्रह में है, क्या आप इसे ईवेंट के माध्यम से प्राप्त करेंगे, क्या? यह जानने के बिना, यह कहना असंभव है कि इसके बारे में सबसे अच्छा तरीका क्या होगा। –
मेरी असली दुनिया की समस्या में, मेरे पास जावा वेक्टर है। मुझे यह समझने में दिलचस्पी होगी कि अगर किसी घटना से उत्पन्न होता है तो मैं कुछ अलग क्यों करूंगा। –
आपकी समस्या के लिए @Travis उत्तर जाने का रास्ता है। किसी घटना से उत्पन्न करना अधिक कठिन होता है - एक अच्छा उदाहरण स्कैला की sys.process लाइब्रेरी है, जो चल रहे प्रक्रिया के 'आउटपुटस्ट्रीम' से' स्ट्रीम 'उत्पन्न कर सकता है। –