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