इटरेटर को बिना कॉपी किए स्ट्रीम में कनवर्ट करना
इंटरमीडिएट कॉपी बनाए बिना इटरेटर को सीधे स्ट्रीम में कनवर्ट करना प्रदर्शन कारणों से एक वांछनीय ऑपरेशन है। इस रूपांतरण को प्राप्त करने के लिए यहां दो प्रभावी तरीके हैं:
विधि 1: स्प्लिटरेटर का उपयोग करना
स्प्लिटरेटर वर्ग का उपयोग करके इटरेटर से एक स्प्लिटरेटर बनाएं और इसे आधार के रूप में उपयोग करें स्ट्रीम:
Iterator sourceIterator = Arrays.asList("A", "B", "C").iterator();
Stream targetStream = StreamSupport.stream(
Spliterators.spliteratorUnknownSize(sourceIterator, Spliterator.ORDERED),
false);
विधि 2: Iterable का उपयोग करना
लैम्ब्डा एक्सप्रेशन का उपयोग करके Iterator से एक Iterable बनाएं। Iterable एक कार्यात्मक इंटरफ़ेस है, जो इस रूपांतरण को सरल बनाता है:
Iterator sourceIterator = Arrays.asList("A", "B", "C").iterator();
Iterable iterable = () -> sourceIterator;
Stream targetStream = StreamSupport.stream(iterable.spliterator(), false);
दोनों तरीकों में प्रतिलिपि से बचने की कुंजी यह है कि वे StreamSupport क्लास का उपयोग करते हैं, जो आपको सीधे स्ट्रीम बनाने की अनुमति देता है मध्यवर्ती संग्रह हेरफेर के बिना स्प्लिटरेटर या इटरेबल से।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3