परिचय
इटरेटर और स्प्लिट इटरेटर दोनों इंटरफेस कलेक्शन पर पुनरावृति के लिए उपयोग किए जाते हैं।
स्प्लिट इटरेटर को Java 8 में समानांतरता प्राप्त करने के लिए पेश किया गया था। यह दिए गए तत्वों के सेट को विभाजित कर सकता है और विभिन्न स्वतंत्र थ्रेड्स का उपयोग करके समानांतर में ऑपरेशन कर सकता है। यह तत्वों को समानांतर के साथ-साथ क्रमिक तरीके से पार कर सकता है। स्प्लिट इटरेटर इंटरफेस में निम्नलिखित महत्वपूर्ण मेथड्स हैं -
- trySplit - दिए गए तत्वों के सेट को कई टुकड़ों में विभाजित करने के लिए उपयोग किया जाता है।
- tryAdvance - यह इटरेटर इंटरफेस में उपलब्ध hasNext/next मेथड्स के बराबर है
- getExactSizeIfKnown - दिए गए तत्वों के सेट का आकार प्राप्त करने के लिए उपयोग किया जाता है।
| क्र. सं. | मुख्य बिंदु | इटरेटर | स्प्लिट इटरेटर |
|---|---|---|---|
| 1 | बुनियादी | इसका उपयोग कलेक्शन के तत्वों को पार करने के लिए किया जा सकता है | इसका उपयोग स्ट्रीम के साथ भी किया जा सकता है। |
| 2 | बल्क ऑपरेशन | इसका उपयोग तत्वों को एक-एक करके पार करने के लिए किया जा सकता है | इसका उपयोग तत्वों को बल्क में पार करने के लिए किया जा सकता है। |
| 3 | क्रमिक/समानांतर | यह केवल क्रमिक तरीके से तत्वों को पार कर सकता है | यह तत्वों को क्रमिक और समानांतर दोनों तरीकों से पार कर सकता है। |
| 4 | एक्सटर्नल/इंटरनल इटरेटर | इटरेटर कलेक्शन पर पुनरावृति के लिए एक्सटर्नल इटरेशन का उपयोग करता है | स्प्लिट इटरेटर इंटरनल इटरेशन का उपयोग करता है |
Spliterator का उदाहरण
public class Main {
public static void main(String args[]) {
List listOfInteger = new ArrayList<>();
listOfInteger.add(78);
listOfInteger.add(10);
listOfInteger.add(20);
listOfInteger.add(30);
Spliterator s = listOfInteger.spliterator();
Spliterator s1 = s.trySplit();
s.forEachRemaining(System.out::println);
System.out.println("दूसरा भाग पार करें ");
s1.forEachRemaining(System.out::println);
}
}