CodeGym /Java Blog /Random /Queue poll() Paraan sa Java na may Mga Halimbawa
John Squirrels
Antas
San Francisco

Queue poll() Paraan sa Java na may Mga Halimbawa

Nai-publish sa grupo

Ano ang isang Queue?

Tulad ng ipinahihiwatig ng pangalan, ang Queue ay isang karaniwang istruktura ng data sa Java kasunod ng pagkakasunud-sunod ng pagpasok ng First In First Out (FIFO) . Madali mong maiisip ito bilang isang pila sa isang grocery store. Mas maaga kang pumasok, mas maaga kang umalis. Nangangahulugan ito na ang elementong idinagdag sa pila nang mas maaga ay aalis din nang mas maaga. Ang unang elemento (harap) ng pila ay tinatawag ding head .Paraan ng Queue poll() sa Java na may Mga Halimbawa - 2
Fig 1.0: Isang simpleng Queue sa Java

Ano ang poll() na paraan ng Queue?

Binibigyang-daan ka ng poll() na paraan na kunin at alisin ang pinakamataas na elemento (ulo) ng isang Queue. Sa aming halimbawa, kapag tumawag ka ng poll() sa queue sa itaas, makakatanggap ka ng '1' bilang resulta. At 4 na elemento na lang ang natitira sa pila.Paraan ng Queue poll() sa Java na may Mga Halimbawa - 3
Fig 1.1: Pagkatapos gumamit ng poll() method sa isang queue

poll() na pamamaraan sa Java

Halimbawa 1

Tingnan ang isang simpleng halimbawa ng pagtawag sa poll() function sa queue na ipinapakita sa figure 1.0.

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");        
	}
}
Output
Queue: [1, 2, 3, 4, 5, 6] poll() ibinalik : 1 Queue Updated! [2, 3, 4, 5, 6] poll() ibinalik : 2 Queue Updated! [3, 4, 5, 6] poll() ibinalik : 3 Queue Updated! [4, 5, 6]
Pakitandaan, kung paano pagkatapos ng bawat poll() na laki ng tawag ng pila ay nababawasan ng 1 at ibinalik ang ulo.

Halimbawa 2

Tingnan natin ang isa pang halimbawa ng mga araw sa isang linggo. Tatawagan namin ang poll() isa-isa sa mga karaniwang araw at tingnan kung ano ang hitsura nito.

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");                   
	}
}
Output
Mga Araw ng Linggo: [Linggo, Lunes, Martes, Miyerkules, Huwebes, Biyernes, Sabado] ibinalik ang poll(): Na-update ang mga Araw ng Linggo! [Lunes, Martes, Miyerkules, Huwebes, Biyernes, Sabado] ibinalik ang poll(): Monday Days Updated! [Martes, Miyerkules, Huwebes, Biyernes, Sabado] ibinalik ang poll(): Na-update ang Mga Araw ng Martes! [Miyerkules, Huwebes, Biyernes, Sabado]

Paano naiiba ang poll() sa peek() at remove()?

Napakadali para sa mga nagsisimula na pagsamahin ang tatlong magkakaibang konsepto dahil halos magkapareho ang mga ito. Maging queue ang "q", pagkatapos ay ganito ang pagkakaiba ng mga ito:
  • q.poll() : inaalis at kinukuha ang ulo ng pila
  • q.peek() : hindi inaalis ngunit kinukuha/ibinabalik lamang ang ulo ng pila
  • q.remove() : inaalis at kinukuha ang ulo ng pila
Kaya lumalabas na ang remove() at poll() ay eksaktong pareho. Pareho silang gumagana sa normal na mga pangyayari. Ngunit kapag ang pila ay walang laman, ang remove() ay nagtatapon ng NoSuchElementException , habang ang poll ay nagbabalik ng null .

Halimbawa 3

Ngayon tingnan natin ang ilang halimbawa ng tatlong function sa itaas.

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()); 

	}
}
Output
Mga Araw ng Linggo: [Linggo, Lunes, Martes, Miyerkules, Huwebes, Biyernes, Sabado] silip() ibinalik: Linggo Araw ng Linggo: [Linggo, Lunes, Martes, Miyerkules, Huwebes, Biyernes, Sabado] silip() ibinalik: Linggo Araw ng Linggo : [Linggo, Lunes, Martes, Miyerkules, Huwebes, Biyernes, Sabado] ibinalik ang alisin(): Na-update ang mga Araw ng Linggo! [Lunes, Martes, Miyerkules, Huwebes, Biyernes, Sabado] ibinalik ang remove(): Monday Days Updated! [Martes, Miyerkules, Huwebes, Biyernes, Sabado] ibinalik ang alisin(): ibinalik ang pagtanggal() Martes: ibinalik ang pagtanggal() Miyerkules: ibinalik ang pagtanggal() ng Huwebes: Nai-update ang mga Araw ng Biyernes! [Sabado] poll() ibinalik: Saturday Days Updated! [] ibinalik ang poll(): null Exception sa thread na "main" java.util.NoSuchElementException sa java.util.LinkedList.removeFirst(LinkedList.java:270) sa java.util.LinkedList.remove(LinkedList.java:
Gaya ng nakikita mo pagkatapos tumawag sa peek() weekdays ay nananatiling pareho. At habang ginagamit namin ang remove() o poll() ang laki ng queue ay nababawasan ng 1 kasama ng pagbabalik ng ulo. Bukod dito, ang java.util.NoSuchElementException ay itinapon kapag tinawag namin ang remove() sa isang walang laman na pila, habang walang ganoong pagbubukod ang itinapon para sa paggamit ng poll() .

Konklusyon

Sa pagtatapos, umaasa kaming pamilyar ka sa paggamit at paggawa ng poll() na paraan ng Queues. Gayunpaman sa kaso ng anumang pagkalito maaari kang palaging bumalik dito upang kumonsulta. Maligayang Pag-coding!
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION