गणन और इटरेटर के बीच का अंतर

Anonim

गणन बनाम Iterator

कई डेटा संरचनाएं जो जावा में संकलन के रूप में कार्य करती हैं, जैसे कि वेक्टर, हैश टेबल और वर्ग जो जावा लागू करते हैं संग्रह फ्रेमवर्क (यानी हैशमैप, हैशसेट, अर्रेलिस्ट, ट्रीसेट, ट्रीमाप, लिंक्डलिस्ट, लिंक्डएचशैप और लिंकेडहाशसेट)। जावा में वस्तुओं के व्यक्तिगत तत्वों के माध्यम से पुनरावृत्त करने के कई तरीके हैं। जावा इस कार्य को आसान बनाने के लिए दो इंटरफेस प्रदान करता है। गणना और इटरेटर जावा में पाए जाने वाले दो इंटरफेस हैं। उपयोगी पैकेज प्रदान करता है जो आइटमों के एक सेट के साथ दृश्यों या ऑब्जेक्ट के माध्यम से गणना करने के लिए कार्यक्षमता प्रदान करता है। एनडीएमएटर जेडीके 1 में शुरू किया गया था। 0 और इटरेटर जो जेडीके 1 में पेश किया गया था। 2. गणनाकर्ता की कार्यक्षमता (कलेक्शंस फ्रेमवर्क के भीतर) में लगभग दोहरी होती है।

गणना क्या है?

गणना, जावा में एक सार्वजनिक इंटरफ़ेस है, जिसे जेडीके 1 में प्रस्तुत किया गया है। 0, जो तत्वों के अनुक्रमों के माध्यम से गणना करने की क्षमता प्रदान करता है। यह जावा के तहत पाया जाता है उपयोग पैकेज जब एक वस्तु द्वारा एन्यूमरेशन इंटरफ़ेस कार्यान्वित किया जाता है, तो वह ऑब्जेक्ट तत्वों का अनुक्रम उत्पन्न कर सकता है। गणना इंटरफ़ेस के दो तरीके हैं। इस पद्धति में अधिक एलेमेंट्स () जांच लेंगे कि क्या इस गणन में अधिक तत्व हैं और अगला एलेमेंट () अनुक्रम में अगले तत्व देता है (यदि कम से कम एक और जाना है)। दूसरे शब्दों में, अगली एलेमेंट () को कॉल करके, क्रमशः, प्रोग्रामर श्रृंखला में व्यक्तिगत तत्वों तक पहुंच सकता है। उदाहरण के लिए, वेक्टर वी 1 में सभी तत्वों को गणक का उपयोग करने के लिए मुद्रित करने के लिए, निम्नलिखित कोड स्निपेट का उपयोग किया जा सकता है।

गणन ई = वी 1 तत्वों ();

जबकि (ई। हैमोरिमेंट्स ()) {

सिस्टम बाहर। println (ई। अगला एलेमेंट ());

}

अनुक्रमक का उपयोग सीक्वेंस इनटस्टस्ट्रीम ऑब्जेक्ट में इनपुट की स्ट्रीम को परिभाषित करने के लिए भी किया जा सकता है

इटरेटर क्या है?

इटरेटर जावा में एक सार्वजनिक इंटरफ़ेस है उपयोग पैकेज, जो संग्रहण ऑब्जेक्ट के तत्वों के माध्यम से चलने की अनुमति देता है जो कलेक्शंस फ्रेमवर्क (जैसे अर्रेइलिस्ट, लिंक्डलिस्ट, आदि) को लागू करता है। यह जेडीके 1 में पेश किया गया था। 2 और जावा कलेक्शंस फ्रेमवर्क के भीतर एन्यूमरेटर को बदल दिया गया। इटरेटर के पास तीन तरीके हैं इस पद्धति के पास अगला () परीक्षण है कि क्या संग्रह में शेष तत्व हैं और अगले () विधि श्रृंखला में अगले तत्व लौटाता है। अंतर्निहित संग्रह से मौजूदा तत्व को निकालने के लिए निकालें () विधि का उपयोग किया जा सकता है। उदाहरण के लिए, Iterator का उपयोग कर वेक्टर v1 के सभी तत्वों को मुद्रित करने के लिए, निम्नलिखित कोड स्निपेट का उपयोग किया जा सकता है।

-3 ->

इटरेटर i = वी 1। तत्वों ();

जबकि (i। अगला ()) {

सिस्टम बाहर। println (ई। अगला ());

}

गणन और इटरेटर में क्या अंतर है?

हालांकि, गणितीय और इटरेटर जावा में पाए जाने वाले दो इंटरफेस हैं।उपयोगी पैकेज, जो एक श्रृंखला के तत्वों के माध्यम से दोहराव / गणना करने की अनुमति देता है, उनके पास उनके मतभेद हैं। दरअसल, इटरेटर, जिसे गणन के बाद पेश किया गया था, ने जावा कलेक्शंस फ्रेमवर्क के अंदर गणन को बदल दिया। गणना के विपरीत, इटरेटर विफल-सुरक्षित है इसका अर्थ है कि इटरेटर के इस्तेमाल के दौरान समवर्ती संशोधन (अंतर्निहित संग्रह में) की अनुमति नहीं है बहु-थ्रेडेड वातावरण में यह बहुत उपयोगी है, जहां हमेशा समवर्ती संशोधनों का खतरा होता है। एक समवर्ती संशोधन की स्थिति में, इटरेटर ऑब्जेक्ट एक समवर्ती सुधार को अपनाने देगा। इटरेटर में गणक की तुलना में कम विधि नाम है। इसके अलावा, पुनरावृत्त के दौरान तत्वों को हटाने के लिए इटरेटर की अतिरिक्त कार्यक्षमता है (जो गणक का उपयोग करना संभव नहीं है) इसलिए, अगर संग्रह से तत्वों को निकालने की आवश्यकता है, Iterator एकमात्र विकल्प है जिसे माना जा सकता है।