Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

Java में Iterator और ListIterator के बीच अंतर


Java ने कलेक्शन में संग्रहीत डेटा को एक-एक करके पार करने के लिए ये दो इंटरफेस प्रदान किए हैं। इटरेटर और लिस्ट इटरेटर का आंतरिक कार्यान्वयन उन्हें अलग करता है लेकिन दोनों इटरेटर्स का मुख्य एजेंडा समान है।

Iterator और ListIterator के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।

क्रमांकमुख्य बिंदुIteratorListIterator
1लागूIterator का उपयोग कलेक्शन के प्रकार की परवाह किए बिना किसी भी कलेक्शन को पार करने के लिए किया जा सकता है।ListIterator का उपयोग केवल List कलेक्शन के कार्यान्वित क्लासेस जैसे ArrayList, LinkedList आदि को पार करने के लिए किया जा सकता है।
2कॉलिंगजैसा कि उल्लेख किया गया है, Iterator का उपयोग Set, List, Queue, Deque जैसे सभी कलेक्शन इम्प्लीमेंटेड इंटरफेस में एलिमेंट्स को गिनने के लिए किया जाना चाहिए और Map इंटरफेस के सभी इम्प्लीमेंटेड क्लासेस में भी। Iterator ऑब्जेक्ट को Collection इंटरफेस के iterator() मेथड को कॉल करके बनाया जा सकता है।दूसरी ओर, ListIterator का उपयोग तब किया जाना चाहिए जब हम List के एलिमेंट्स को गिनना चाहते हैं। ListIterator का ऑब्जेक्ट List इंटरफेस में मौजूद listIterator() मेथड को कॉल करके बनाया जा सकता है।
3डेटा ट्रैवर्सलइटरेटर के मामले में डेटा ट्रैवर्सल केवल एक दिशा में संभव है क्योंकि Iterator केवल फॉरवर्ड दिशा में ट्रैवर्स कर सकता है।ListIterator फॉरवर्ड और बैकवर्ड दोनों दिशाओं में ट्रैवर्स कर सकता है जिससे डेटा ट्रैवर्सल दोनों दिशाओं में संभव होता है।
4डिलीशनइटरेटर के मामले में एलिमेंट का डिलीशन अनुमत नहीं है।ListIterator लिस्ट कलेक्शन में एलिमेंट को रिप्लेस कर सकता है।
5एडिशनइटरेटर के मामले में एलिमेंट का एडिशन अनुमत नहीं है क्योंकि यह ConcurrentModificationException फेंकता है।ListIterator लिस्ट कलेक्शन में किसी भी समय आसानी से एलिमेंट जोड़ सकता है।
6मॉडिफिकेशनइटरेटर के मामले में एलिमेंट का मॉडिफिकेशन अनुमत नहीं है क्योंकि यह ConcurrentModificationException फेंकता है।ListIterator लिस्ट कलेक्शन में किसी भी समय set() मेथड कॉल करके आसानी से एलिमेंट को मॉडिफाई कर सकता है।
7एलिमेंट का इंडेक्सइटरेटर का उपयोग करते समय कलेक्शन में पार किए गए एलिमेंट का इंडेक्स प्राप्त नहीं किया जा सकता।ListIterator में nextIndex() और previousIndex() जैसे मेथड्स होते हैं जो ट्रैवर्सल के दौरान किसी भी समय एलिमेंट्स के इंडेक्स प्राप्त करने के लिए होते हैं।

Iterator बनाम ListIterator का उदाहरण

JavaTester.java

import java.io.*; import java.util.*; public class JavaTester { public static void main(String[] args){ ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); //Iterator Iterator itr = list.iterator(); System.out.println("Iterator traversal:"); while (itr.hasNext()) System.out.print(itr.next() + " "); System.out.println(); // ListIterator ListIterator i = list.listIterator(); System.out.println("ListIterator Forward traversal:"); while (i.hasNext()){ System.out.print(i.next() + " "); System.out.println(); System.out.println("ListIterator Backward traversal : "); } while (i.hasPrevious()){ System.out.print(i.previous() + " "); System.out.println(); } } }

आउटपुट

Iterator traversal: 1 2 3 4 5 ListIterator Forward traversal: 1 ListIterator Backward traversal : 2 ListIterator Backward traversal : 3 ListIterator Backward traversal : 4 ListIterator Backward traversal : 5 ListIterator Backward traversal : 5 4 3 2 1
  1. - Java में list() और listFiles() विधियों में अंतर

    java.io पैकेज का File नामक क्लास सिस्टम में एक फ़ाइल या निर्देशिका (पथ नाम) का प्रतिनिधित्व करता है। एक निर्देशिका में मौजूद सभी फ़ाइलों की सूची प्राप्त करने के लिए यह क्लास list() और listFiles() विधियाँ प्रदान करता है। उनके बीच मुख्य अंतर यह है कि list() विधि दिए गए निर्देशिका में सभी फ़ाइलों के न

  1. - Java में ArrayList और HashSet के बीच अंतर

    HashSet और ArrayList दोनों Java कलेक्शन फ्रेमवर्क के सबसे महत्वपूर्ण क्लासेस में से कुछ हैं।ArrayList और HashSet के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।क्रमांकमुख्य बिंदुArrayListHashSet1कार्यान्वयनArrayList लिस्ट इंटरफेस का कार्यान्वयन है।दूसरी ओर HashSet सेट इंटरफेस का कार्यान्वयन है।2आंतरिक कार्या

  1. - Java में Iterator और ListIterator के बीच अंतर

    Java ने कलेक्शन में संग्रहीत डेटा को एक-एक करके पार करने के लिए ये दो इंटरफेस प्रदान किए हैं। इटरेटर और लिस्ट इटरेटर का आंतरिक कार्यान्वयन उन्हें अलग करता है लेकिन दोनों इटरेटर्स का मुख्य एजेंडा समान है।Iterator और ListIterator के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।क्रमांकमुख्य बिंदुIteratorListIter