रांग म्हणजे काय?

नावाप्रमाणेच, Queue ही Java मधील फर्स्ट इन फर्स्ट आउट (FIFO) इन्सर्टेशन ऑर्डरनुसार एक सामान्य डेटा स्ट्रक्चर आहे . किराणा दुकानात रांग म्हणून तुम्ही त्याची सहज कल्पना करू शकता. जितक्या लवकर तुम्ही आत जाल तितक्या लवकर तुम्ही निघाल. याचा अर्थ रांगेत आधी जोडलेला घटक लवकर निघेल. रांगेच्या पहिल्या घटकाला (समोर) हेड असेही म्हणतात .उदाहरणांसह Java मधील रांग मतदान() पद्धत - २
अंजीर 1.0: Java मध्ये एक साधी रांग

रांगेची पोल() पद्धत काय आहे?

poll() पद्धत तुम्हाला रांगेतील सर्वात वरचा घटक (हेड) पुनर्प्राप्त करण्याची आणि काढून टाकण्याची परवानगी देते. आमच्या उदाहरणात, जेव्हा तुम्ही वरील रांगेत poll() ला कॉल करता, तेव्हा तुम्हाला परिणाम म्हणून '1' प्राप्त होईल. आणि रांगेत फक्त 4 घटक शिल्लक असतील.उदाहरणांसह Java मधील Queue poll() पद्धत - 3
अंजीर 1.1: रांगेत poll() पद्धत वापरल्यानंतर

जावा मध्ये poll() पद्धत

उदाहरण १

आकृती 1.0 मध्ये दर्शविलेल्या रांगेवर कॉलिंग poll() फंक्शनचे एक साधे उदाहरण पहा .

import java.util.LinkedList;
import java.util.Queue;

public class QueuePollMethod {

	public static void main(String[] args) {

	  // create a queue of die rolls 
        Queue dieRoll   = new LinkedList(); 
  
        // Add 6 integers one by one
        dieRoll.add(1); 
        dieRoll.add(2); 
        dieRoll.add(3); 
        dieRoll.add(4); 
        dieRoll.add(5); 
        dieRoll.add(6); 
  
        // print the original queue 
        System.out.println("Queue:\t" + dieRoll + "\n"); 
  
        // after calling poll()
        System.out.println("poll() returned : " + dieRoll.poll()); 
        System.out.println("Queue Updated!\t" + dieRoll + "\n"); 

        // after calling poll()
        System.out.println("poll() returned : " + dieRoll.poll()); 
        System.out.println("Queue Updated!\t" + dieRoll + "\n"); 
        
        // after calling poll()
        System.out.println("poll() returned : " + dieRoll.poll()); 
        System.out.println("Queue Updated!\t" + dieRoll + "\n");        
	}
}
आउटपुट
रांग: [1, 2, 3, 4, 5, 6] मतदान() परत आले : 1 रांग अद्यतनित! [2, 3, 4, 5, 6] मतदान() परत आले : 2 रांग अद्यतनित! [३, ४, ५, ६] मतदान() परत आले : ३ रांग अद्यतनित! [४, ५, ६]
कृपया लक्षात ठेवा, प्रत्येक मतदानानंतर () रांगेचा कॉल आकार 1 ने कसा कमी केला जातो आणि हेड कसे परत केले जाते.

उदाहरण २

आठवड्यातील दिवसांचे दुसरे उदाहरण पाहू. आम्ही आठवड्याच्या दिवशी एक एक करून poll() कॉल करू आणि ते कसे दिसते ते पाहू.

import java.util.LinkedList;
import java.util.Queue;

public class QueuePollMethod {

	public static void main(String[] args) {
        
        Queue days   = new LinkedList(); 
        
        days.add("Sunday");
        days.add("Monday");
        days.add("Tuesday");
        days.add("Wednesday");
        days.add("Thursday");
        days.add("Friday");
        days.add("Saturday");

        // print all the days in the week
        System.out.println("Week Days: \t" + days + "\n"); 
  
        // after calling poll()
        System.out.println("poll() returned: " + days.poll()); 
        System.out.println("Days Updated!\t" + days + "\n"); 

        // after calling poll()
        System.out.println("poll() returned: " + days.poll()); 
        System.out.println("Days Updated!\t" + days + "\n"); 
        
        // after calling poll()
        System.out.println("poll() returned: " + days.poll()); 
        System.out.println("Days Updated!\t" + days + "\n");                   
	}
}
आउटपुट
आठवड्याचे दिवस: [रविवार, सोमवार, मंगळवार, बुधवार, गुरुवार, शुक्रवार, शनिवार] मतदान() परत आले: रविवारचे दिवस अद्यतनित! [सोमवार, मंगळवार, बुधवार, गुरुवार, शुक्रवार, शनिवार] मतदान() परत आले: सोमवारचे दिवस अद्यतनित! [मंगळवार, बुधवार, गुरुवार, शुक्रवार, शनिवार] मतदान() परत आले: मंगळवार दिवस अद्यतनित! [बुधवार, गुरुवार, शुक्रवार, शनिवार]

poll() peek() आणि remove() पेक्षा वेगळे कसे आहे?

नवशिक्यांसाठी तीन भिन्न संकल्पना एकत्र करणे खूप सोपे आहे कारण ते अगदी सारखे दिसतात. चला “q” एक रांग बनूया, मग ते कसे वेगळे आहेत ते येथे आहे:
  • q.poll() : रांगेचे प्रमुख काढून टाकते आणि पुनर्प्राप्त करते
  • q.peek() : काढत नाही तर फक्त रांगेचे प्रमुख परत मिळवते/परत करते
  • q.remove() : रांगेचे प्रमुख काढून टाकते आणि पुनर्प्राप्त करते
त्यामुळे असे दिसते की remove() आणि poll() अगदी सारखेच आहेत. ते सामान्य परिस्थितीत समान कार्य करतात. पण रांग रिकामी असताना, remove() NoSuchElementException फेकते , तर पोल null परत करते .

उदाहरण ३

आता वरील तीन फंक्शन्सची काही उदाहरणे पाहू.

import java.util.LinkedList;
import java.util.Queue;

public class QueuePollMethod {

	public static void main(String[] args) {
        
        Queue days   = new LinkedList(); 
        
        days.add("Sunday");
        days.add("Monday");
        days.add("Tuesday");
        days.add("Wednesday");
        days.add("Thursday");
        days.add("Friday");
        days.add("Saturday");

        // print all the days in the week
        System.out.println("Week Days: \t" + days + "\n"); 
  
        // after calling peek()
        System.out.println("peek() returned: " + days.peek()); 
        System.out.println("Week Days: \t" + days + "\n"); 

        System.out.println("peek() returned: " + days.peek()); 
        System.out.println("Week Days: \t" + days + "\n"); 
        
        // after calling remove()
        System.out.println("remove() returned: " + days.remove()); 
        System.out.println("Days Updated!\t" + days + "\n"); 
        
        System.out.println("remove() returned: " + days.remove()); 
        System.out.println("Days Updated!\t" + days + "\n"); 
       
        System.out.println("remove() returned: " + days.remove()); 
        System.out.println("remove() returned: " + days.remove()); 
        System.out.println("remove() returned: " + days.remove()); 
        System.out.println("remove() returned: " + days.remove()); 

        System.out.println("Days Updated!\t" + days + "\n"); 
 
        // after calling poll()
        System.out.println("poll() returned: " + days.poll()); 
        System.out.println("Days Updated!\t" + days + "\n");           
        
        System.out.println("poll() returned: " + days.poll()); 
        System.out.println("remove() returned: " + days.remove()); 

	}
}
आउटपुट
आठवड्याचे दिवस: [रविवार, सोमवार, मंगळवार, बुधवार, गुरुवार, शुक्रवार, शनिवार] पीक() परत आले: रविवार आठवड्याचे दिवस: [रविवार, सोमवार, मंगळवार, बुधवार, गुरुवार, शुक्रवार, शनिवार] पीक() परत आले: रविवार आठवड्याचे दिवस : [रविवार, सोमवार, मंगळवार, बुधवार, गुरुवार, शुक्रवार, शनिवार] काढून टाका() परत आला: रविवारचे दिवस अद्यतनित! [सोमवार, मंगळवार, बुधवार, गुरुवार, शुक्रवार, शनिवार] काढून टाका() परत आला: सोमवारचे दिवस अद्यतनित! [मंगळवार, बुधवार, गुरुवार, शुक्रवार, शनिवार] काढून टाका() परत आला: मंगळवार काढा() परत आला: बुधवारी काढला() परत आला: गुरुवारी काढला() परत आला: शुक्रवारचे दिवस अपडेट केले! [शनिवार] मतदान() परत आले: शनिवारचे दिवस अद्यतनित! [] poll() परत आला: java.util.LinkedList.removeFirst(LinkedList.java:270) येथे java.util.LinkedList.remove(LinkedList.) येथे "मुख्य" थ्रेडमधील शून्य अपवाद.
peek() कॉल केल्यानंतर तुम्ही पाहू शकता की आठवड्याचे दिवस तसेच राहतील. आणि जसे आपण remove() किंवा poll() वापरतो तसेच हेड रिटर्नसह रांगेचा आकार 1 ने कमी होतो. शिवाय, java.util.NoSuchElementException जेव्हा आपण रिकाम्या रांगेत रिमूव्ह() कॉल करतो तेव्हा टाकला जातो , तर poll() वापरण्यासाठी असा अपवाद टाकला जात नाही .

निष्कर्ष

अखेरीस, आम्हाला आशा आहे की तुम्ही रांगांच्या poll() पद्धतीचा वापर आणि कार्यप्रणालीशी परिचित असाल. तथापि, कोणत्याही गोंधळाच्या बाबतीत, आपण नेहमी सल्ला घेण्यासाठी येथे परत येऊ शकता. आनंदी कोडिंग!