listiterator interface java with examples
सी ++ में हैशिंग प्रोग्राम का कार्यान्वयन
यह ट्यूटोरियल जावा में ListIterator इंटरफ़ेस को ट्रैवर्स लिस्ट इम्प्लीमेंटेशन में बताता है। आप सूची आरेख इंटरफ़ेस के कक्षा आरेख और विधियों के बारे में जानेंगे:
Iterator की तरह, ListIterator इंटरफ़ेस जावा में सूची कार्यान्वयनों के माध्यम से आगे बढ़ने और सूची के तत्वों तक पहुंचने के लिए कार्यक्षमता प्रदान करता है।
=> जावा प्रशिक्षण ट्यूटोरियल के ए-जेड को देखने के लिए यहां देखें।
आप क्या सीखेंगे:
जावा में ListIterator इंटरफ़ेस
ListIterator इंटरफ़ेस की कुछ मुख्य विशेषताएं नीचे सूचीबद्ध हैं:
- ListIterator को Java 1.2 में पेश किया गया था
- ListIterator Iterator इंटरफ़ेस का एक उप-इंटरफ़ेस है यानी यह Iterator इंटरफ़ेस से विस्तारित होता है।
- ListIterator केवल सूची कार्यान्वयन के साथ काम करता है।
- ListIterator सभी ऑपरेशंस अर्थात्, क्रिएट, रीड, अपडेट और डिलीट का समर्थन करता है। (सामूहिक रूप से CRUD ऑपरेशन कहा जाता है)।
- ListIterator एक द्वि-दिशात्मक Iterator है और यह आगे और साथ ही पिछड़े दिशा पुनरावृत्तियों का समर्थन करता है।
- ListIterator के मामले में, कोई वर्तमान तत्व नहीं है। कर्सर की स्थिति को पिछले () विधि द्वारा दिए गए तत्व और अगले () विधि द्वारा वापस किए गए तत्व के बीच के स्थान पर इंगित किया जाता है।
आइए इस ट्यूटोरियल में इस इंटरफ़ेस के बारे में अधिक चर्चा करें।
ListIterator वर्ग आरेख
ListIterator एक इंटरफ़ेस है जो कलेक्शंस API फ्रेमवर्क से संबंधित है। यह इंटरफ़ेस Iterator इंटरफ़ेस से फैला है। Iterator इंटरफ़ेस के तरीकों को विरासत में देने के अलावा, यह द्वि-दिशात्मक पुनरावृत्तियों और CRUD संचालन के लिए विधियों का भी समर्थन करता है।
ListIterator इंटरफ़ेस का वर्ग आरेख नीचे दिखाया गया है।
उपरोक्त आंकड़ा ListIterator इंटरफ़ेस के वर्ग आरेख को दर्शाता है। अगले भाग में, हम आकृति में दिखाए गए प्रत्येक तरीकों पर विस्तार से चर्चा करेंगे।
ListIterator विधियाँ
ListIterator इंटरफ़ेस नीचे दी गई तालिका में दिखाए अनुसार निम्न विधियाँ प्रदान करता है।
विधि का नाम | प्रोटोटाइप | विवरण |
---|---|---|
हटाना() | शून्य निकालें () | अंतिम तत्व को या तो अगले () या पिछले () विधि से वापस करता है। |
hasNext () | बूलियन hasNext () | अगर जाँचकर्ता के पास आगे की दिशा में आगे बढ़ने के लिए अधिक तत्व हैं तो जाँच करता है। |
अगला() | ई अगला () | सूची में अगला तत्व देता है। फिर कर्सर को अगले तत्व की ओर इंगित करता है। |
हैप्रोजेक्ट () | बूलियन के पास स्पष्ट है () | जाँच करता है कि सूची सूची में पिछड़े / रिवर्स दिशा में अधिक तत्व हैं। |
पहले का() | ई पिछला () | सूची में पिछले तत्व को लौटाता है और कर्सर को पीछे की दिशा में एक स्थान पर ले जाता है। |
NextIndex () | int अगलाअंडे () | तत्व का रिटर्न इंडेक्स जो अगले () विधि से कॉल करके लौटाया जाएगा। |
पिछला सूचकांक () | int पिछलाIndex () | उस तत्व के सूचकांक को लौटाता है जिसे कॉल पिछले () विधि से किया जाएगा। |
सात) | शून्य सेट (ई और) | नए मूल्य के साथ या तो अगले () या पिछले () विधि द्वारा दिए गए अंतिम तत्व को बदल देता है। |
जोड़ें (ई) | शून्य जोड़ (E e) | सूची में नए तत्व जोड़ता है। |
अगला, हम इनमें से प्रत्येक विधि का विस्तार से वर्णन करेंगे।
# 1) है अगला ()
प्रोटोटाइप: बूलियन hasNext ()
पैरामीटर: शून्य
प्रतिलाभ की मात्रा:
- सत्य => सूची में अगला तत्व है
- गलत => सूची में और अधिक तत्व नहीं हैं
विवरण: यह विधि जाँचती है कि लिस्टइंटरेटर के पास आगे की दिशा में पार करने के लिए अधिक तत्व हैं या नहीं। यदि इसमें अधिक तत्व हैं तो यह विधि सही है।
# 2) अगला ()
प्रोटोटाइप: ई अगला ()
पैरामीटर: शून्य
प्रतिलाभ की मात्रा: E => सूची में अगला तत्व।
विवरण: अगली () विधि सूची में अगले तत्व को लौटाती है और कर्सर को अगले तत्व में ले जाती है।
अपवाद फेंकना: NoSuchElementException - यदि ListIterator में कोई अगला तत्व नहीं है।
# 3) है स्पष्ट ()
प्रोटोटाइप: बूलियन के पास स्पष्ट है ()
पैरामीटर: शून्य
प्रतिलाभ की मात्रा: सच => सूची-सूची में पिछले तत्व है
विवरण: जाँच करता है कि सूची सूची में पिछड़े / रिवर्स दिशा में अधिक तत्व हैं।
# 4) पिछला ()
प्रोटोटाइप: ई पिछला ()
पैरामीटर: शून्य
प्रतिलाभ की मात्रा: सूची में ई => पिछला तत्व
विवरण: यह विधि सूची में पिछले तत्व को पीछे की ओर ले जाती है और फिर कर्सर को पीछे की ओर ले जाती है।
अपवाद फेंकना: NoSuchElementException - यदि ListIterator में कोई अगला तत्व नहीं है।
# 5) अगला ()
प्रोटोटाइप: int अगलाअंडे ()
पैरामीटर: शून्य
प्रतिलाभ की मात्रा: int => उस सूची का तत्व जो सूची के अंत में सूची के अंत में है।
विवरण: इस विधि को अगली () विधि से पहले बुलाया जा सकता है। अगली इंडेक्स () विधि उस तत्व के सूचकांक को लौटाती है जिसे अगले () विधि द्वारा वापस किया जाएगा। यदि सूची सूची के अंत में सूची सूची है तो यह विधि सूची के आकार को लौटा देती है।
# 6) पिछला सूचकांक ()
प्रोटोटाइप: int पिछलाIndex ()
पैरामीटर: शून्य
प्रतिलाभ की मात्रा: int => तत्व का सूचकांक जो पिछले () विधि या -1 द्वारा लौटाया जाएगा यदि सूची सूची की शुरुआत में है।
विवरण: इस विधि को पिछली () विधि से पहले बुलाया जा सकता है। पिछलेइंडेक्स () विधि उस तत्व के सूचकांक को लौटाती है जिसे पिछले () विधि द्वारा वापस किया जाएगा। यदि सूची सूची की शुरुआत में सूची सूची है तो विधि -1 लौटती है।
# 7) निकालें ()
प्रोटोटाइप: शून्य निकालें ()
पैरामीटर: शून्य
प्रतिलाभ की मात्रा: शून्य
विवरण: निष्कासन () विधि पिछले तत्व को हटा देती है जो या तो पिछले () या अगले () विधि द्वारा वापस किया गया था। विधि निकालने () के लिए कॉल केवल एक बार अगले () या पिछले () विधि के लिए कॉल किया जा सकता है।
अपवाद फेंकना:
- UnsupportedOperationException - ListIterator ऑपरेशन को हटाने का समर्थन नहीं करता है।
- IllegalStateException - यदि वर्तमान ऑपरेशन अवैध स्थिति में है यानी न तो अगले या पिछले को अभी तक बुलाया गया है और न ही अगले या पिछले कॉल के बाद, तो जोड़ें या निकालें को कॉल नहीं किया गया है।
# 8) सेट (ई)
प्रोटोटाइप: शून्य सेट (ई और)
पैरामीटर: e => नया तत्व जिसके साथ पुराने तत्व को प्रतिस्थापित किया जाना है
प्रतिलाभ की मात्रा: शून्य
विवरण: विधि सेट () या तो पिछले () या अगले () विधि द्वारा लौटाए गए तत्व को एक मान के रूप में नए मान के साथ सेट करती है। इस विधि को केवल तभी जोड़ा जा सकता है जब जोड़ने () या निकालने () विधि को पिछली कॉल के बाद पिछले विधि () या अगले () के लिए नहीं कहा जाता है।
अपवाद फेंकना:
- UnsupportedOperationException - ListIterator सेट ऑपरेशन का समर्थन नहीं करता है।
- ClassCastException - यदि निर्दिष्ट तत्व को उसके वर्ग के कारण नहीं जोड़ा जा सकता है।
- IllegalArgumentException - यदि तत्व / तर्क जोड़ा जा रहा है तो अवैध या अमान्य है।
- IllegalStateException - यदि वर्तमान ऑपरेशन Illegal स्थिति में है, यानी न तो अगला और न ही पिछले को कॉल किया गया है या अगले या पिछले करने के लिए कॉल के बाद, जोड़ें या निकालें को नहीं बुलाया गया है।
# 9) जोड़ें (ई)
प्रोटोटाइप: शून्य जोड़ (E e)
पैरामीटर: ई => सूची में जोड़ा जाने वाला नया तत्व
प्रतिलाभ की मात्रा: शून्य
विवरण: सूची में एक नया तत्व जोड़ने के लिए ऐड () विधि का उपयोग किया जाता है। तत्व अगले तत्व के ठीक पहले जोड़ा जाता है (यदि) उस तत्व के बाद, यदि कोई है और पिछला () विधि वापस आ गया है।
ध्यान दें कि, एक तत्व को जोड़ने के परिणामस्वरूप, अगले () के मूल्य को वापस करने के लिए कोई बदलाव नहीं होगा लेकिन पिछले () विधि बस जोड़े गए तत्व को वापस कर देगी।
अपवाद फेंकना:
- UnsupportedOperationException - ListIterator ऐड पद्धति का समर्थन नहीं करता है।
- ClassCastException यदि कोई निर्दिष्ट तत्व जो उसके वर्ग के कारण नहीं जोड़ा जा सकता है।
- यदि तत्व / तर्क जोड़ा जा रहा है तो अवैध या अवैध है।
निम्न जावा प्रोग्राम उपरोक्त सूची सूची के सभी तरीकों को प्रदर्शित करता है।
import java.util.*; public class Main{ public static void main(String args()){ //define list and add elements to it ListnameList=new ArrayList(); nameList.add('Savich'); nameList.add('Dane'); nameList.add('Lacey'); nameList.add(1,'James'); System.out.println('Original List:' + nameList); //define a list iterator for this list ListIterator list_itr=nameList.listIterator(); System.out.println('List elements in forward direction:'); //while there are still elements in the list, display next index and element while(list_itr.hasNext()){ System.out.println('Index:'+list_itr.nextIndex()+' Element:'+list_itr.next()); } //call set() method to set next value to 'Sally' list_itr.set('Sally'); System.out.println('
List after set('Sally'):' + nameList); //while there are elements in the list, display previous index and element System.out.println('
List elements in backward direction:'); while(list_itr.hasPrevious()){ System.out.println('Index:'+list_itr.previousIndex()+' Element:'+list_itr.previous()); } //call remove () method list_itr.remove(); System.out.println('List after remove():' + nameList); } }
आउटपुट:
जावा उदाहरणों में ListIterator इंटरफ़ेस
आइए ListIterator का उपयोग करने का एक और उदाहरण देखें। इस कार्यक्रम में, हमारे पास पूर्णांक मानों का एक ArrayList है। फिर ListIterator का उपयोग करके हम सूची को प्रदर्शित करते हैं और सूची तत्वों को प्रदर्शित करते हैं।
इसके अलावा, हम केवल ArrayList में तत्वों को चुनते हैं और ListIterator विधियों का उपयोग करके उनके मानों को विषम संख्या में बदलते हैं।
import java.util.ArrayList; import java.util.ListIterator; public class Main { public static void main(String() args) { //define ArrayList and add values to it using for loop ArrayList intList = new ArrayList(); for (int i = 0; i <10; i++) intList.add(i+2); System.out.println('Original ArrayList:' + intList); // define the ListIterator ListIterator list_itr = intList.listIterator(); System.out.println('List elements using listIterator:'); //while list has more elements while (list_itr.hasNext()) { //retrieve next element int i = (Integer)list_itr.next(); // print the element System.out.print(i + ' '); // change only even numbers to odd by setting value = value +1 to current element if (i%2==0) { list_itr.set(i+1); // set method to change value } } System.out.println(); System.out.println('Final ArrayList of odd values:' + intList); } }
आउटपुट:
बार बार पूछे जाने वाले प्रश्न
Q # 1) पुनरावृत्ति से क्या अभिप्राय है?
उत्तर: Iterator एक इंटरफ़ेस है जो जावा में संग्रह ढांचे का एक हिस्सा है। यह इंटरफ़ेस java.util पैकेज में मौजूद है। वस्तुओं के संग्रह के माध्यम से पुनरावृति करने के लिए इट्रेटर इंटरफ़ेस का उपयोग किया जाता है।
Q # 2) जावा में इट्रेटर इंटरफ़ेस क्या है?
उत्तर: जावा में एक इटोमेरियर इंटरफ़ेस का उपयोग एन्यूमरेशंस के बजाय किया जाता है जो पहले जावा कलेक्शन फ्रेमवर्क में उपयोग किया गया था। 1.2 संस्करण के बाद से इट्रेटर इंटरफ़ेस जावा में मौजूद है।
इस इंटरफ़ेस का उपयोग करके आप किसी भी जावा संग्रह के माध्यम से पुनरावृत्ति कर सकते हैं और संग्रह तत्वों को संसाधित कर सकते हैं।
Q # 3) जावा में लिस्टइंटरेटर () पद्धति का उपयोग क्या है?
उत्तर: ListIterator () विधि java.util से संबंधित है। * पैकेज। यह विधि उस विशेष सूची ऑब्जेक्ट के लिए एक सूची पुनरावर्तक लौटाती है जिसने इसे लागू किया है और इसका उपयोग सूचियों और अभिगम तत्वों को पार करने के लिए किया जा सकता है। सूची कार्यान्वयन केवल सूची कार्यान्वयन पर काम करता है।
Q # 4) क्या इट्रेटर एक वर्ग या एक इंटरफ़ेस है?
उत्तर: Iterator एक वर्ग नहीं है, लेकिन एक है जावा में इंटरफ़ेस । Iterator इंटरफ़ेस को अन्य वर्गों द्वारा लागू किया जा सकता है और इसका उपयोग सूची या संग्रह तत्वों के माध्यम से पुनरावृति करने के लिए किया जा सकता है।
Q # 5) जावा में कितने प्रकार के पुनरावृत्तियाँ हैं?
उत्तर: जावा में Iterators तीन प्रकार के होते हैं:
- गणना: यह एक इंटरफ़ेस है जिसका उपयोग वेक्टर, हैशटेबल आदि जैसे संग्रह से तत्वों को पढ़ने के लिए किया जाता है। प्रत्येक तत्व को संग्रह में उसकी स्थिति के अनुसार गिना जाता है।
- Iterator: आप इस इंटरफ़ेस को सार्वभौमिक कह सकते हैं क्योंकि आप इसे संग्रह के माध्यम से पार करने के लिए किसी भी संग्रह ऑब्जेक्ट पर लागू कर सकते हैं। यह एक तत्व को पढ़ने की क्षमता के साथ-साथ हटाए गए कार्यक्षमता के साथ एक बेहतर गणना है।
- सूचीकर्ता: ListIterator एक इंटरफ़ेस है जो द्वि-दिशात्मक पुनरावृत्ति प्रदान करता है यानी आगे और पीछे की दिशाओं में। ListIterator केवल लिंक्डलिस्ट, ArrayList, आदि सहित सूची कार्यान्वयन के साथ काम करता है।
निष्कर्ष
जावा में ListIterator इंटरफ़ेस Iterator इंटरफ़ेस से लिया गया है। Iterator इंटरफ़ेस के तरीकों को सीधे विरासत में देने के अलावा, listIterator इंटरफ़ेस अपने स्वयं के विभिन्न तरीकों का परिचय देता है जो प्रोग्रामर को द्विदिशीय पुनरावृत्ति करने में सहायता कर सकते हैं।
इस ट्यूटोरियल में हमने क्लास डायग्राम और लिस्टइंटरेटर इंटरफेस के विभिन्न तरीकों पर चर्चा की है। हमने विभिन्न सूचियों के माध्यम से पार करने के तरीकों के साथ-साथ इन तरीकों के कार्यान्वयन को भी देखा है।
=> सभी के लिए जावा प्रशिक्षण श्रृंखला देखने के लिए यहां जाएं।
अनुशंसित पाठ
- उदाहरण के साथ जावा इंटरफेस और एब्सट्रैक्ट क्लास ट्यूटोरियल
- जावा ट्यूटोरियल फॉर बिगिनर्स: 100+ हैंड्स-ऑन जावा वीडियो ट्यूटोरियल
- जावा Iterator: उदाहरण के साथ जावा में Iterators का उपयोग करना सीखें
- कोड उदाहरण के साथ जावा ऐरे लेंथ ट्यूटोरियल
- जावा में दांतेदार सरणी - उदाहरणों के साथ ट्यूटोरियल
- जावा में एक सरणी उलट - उदाहरण के साथ 3 तरीके
- कैसे जावा में एक सरणी को सॉर्ट करने के लिए - उदाहरण के साथ ट्यूटोरियल
- प्रमुख जावा 8 कोड उदाहरण के साथ सुविधाएँ