ArrayBlockingQueue poll() Method in Java
ArrayBlockingQueue is bounded, blocking queue that stores the elements internally backed by an array.
- ArrayBlockingQueue class is a member of the Java Collections Framework.
- Bounded means it will have a fixed size, you can not store number the elements more than the capacity of the queue.
- The queue also follows FIFO (first-in-first-out) rule for storing and removing elements from the queue.
- If you try to put an element into a full queue or to take an element from an empty queue then the queue will block you.
There are two types of poll() method depending upon no of parameter passed.
-
The poll() method retrieves and removes element from head of this queue.If queue is empty then method will return null.
Syntax:public E poll()
Return Value: The method returns the element from the head of this queue, or null if this queue is empty.
Below programs illustrate poll() method of ArrayBlockingQueue.
Program 1:
/**Program Demonstrate poll() method of ArrayBlockingQueue.*/importjava.util.concurrent.ArrayBlockingQueue;publicclassGFG {publicstaticvoidmain(String[] args){// define capacity of ArrayBlockingQueueintcapacity =5;// create object of ArrayBlockingQueueArrayBlockingQueue<Integer> queue =newArrayBlockingQueue<Integer>(capacity);// Add elements to ArrayBlockingQueuequeue.offer(423);queue.offer(233);queue.offer(356);// print elementsSystem.out.println("Queue Contains"+ queue);// try to poll elementsSystem.out.println("Removing From head: "+queue.poll());System.out.println("Queue Contains"+ queue);System.out.println("Removing From head: "+queue.poll());System.out.println("Queue Contains"+ queue);System.out.println("Removing From head: "+queue.poll());System.out.println("Queue Contains"+ queue);System.out.println("Removing From head: "+queue.poll());System.out.println("Queue Contains"+ queue);}}chevron_rightfilter_noneOutput:Queue Contains[423, 233, 356] Removing From head: 423 Queue Contains[233, 356] Removing From head: 233 Queue Contains[356] Removing From head: 356 Queue Contains[] Removing From head: null Queue Contains[]
Program 2:
/** Program Demonstrate poll() method of ArrayBlockingQueue.*/importjava.util.concurrent.ArrayBlockingQueue;publicclassGFG {// Create a User Object with name and age as an attributepublicclassUser {publicString name;publicString age;User(String name, String age){this.name = name;this.age = age;}}// Main Methodpublicstaticvoidmain(String[] args){GFG gfg =newGFG();gfg.pollMethodExample();}// Method to give example of contains functionpublicvoidpollMethodExample(){// Define the capacity of ArrayBlockingQueueintcapacity =5;// Create object of ArrayBlockingQueueArrayBlockingQueue<User> queue =newArrayBlockingQueue<User>(capacity);// Create user objectsUser user1 =newUser("Aman","24");User user3 =newUser("Sanjeet","25");// Add Objects to ArrayBlockingQueuequeue.offer(user1);queue.offer(user3);// Poll users from queueUser user = queue.poll();System.out.println("removing user having name = "+ user.name);user = queue.poll();System.out.println("removing user having name = "+ user.name);// Now queue is empty// Try to remove it will return nulluser = queue.poll();System.out.println("removing user having name = "+ user);}}chevron_rightfilter_noneOutput:removing user having name = Aman removing user having name = Sanjeet removing user having name = null
-
The poll(long timeout, TimeUnit unit) method retrieves and removes element from head of this queue. If the queue is empty then it will, wait till a specified time for an element to become available.
Syntax:public E poll(long timeout, TimeUnit unit) throws InterruptedException
Parameters: The method takes two parameters:
- timeout (long) – how long to wait before giving up, in units of unit.
- unit (TimeUnit)- a TimeUnit determining how to interpret the timeout parameter.
Return Value: The method returns the head of this queue, or null if the specified waiting time elapses before an element is available.
Exception: The method throws InterruptedException if interrupted while waiting.Below program illustrates poll(long timeout, TimeUnit unit)method of ArrayBlockingQueue.
/** Program Demonstrate offer(E e, long timeout, TimeUnit unit)* method of ArrayBlockingQueue.*/importjava.util.concurrent.ArrayBlockingQueue;importjava.util.concurrent.TimeUnit;publicclassGFG {publicstaticvoidmain(String[] args)throwsInterruptedException{// Define capacity of ArrayBlockingQueueintcapacity =5;// Create object of ArrayBlockingQueueArrayBlockingQueue<Integer> queue =newArrayBlockingQueue<Integer>(capacity);// Add elements to ArrayBlockingQueuequeue.offer(423);queue.offer(233);queue.offer(356);// Print elementsSystem.out.println("Queue Contains"+ queue);// Try to poll elementsSystem.out.println("Removing From head: "+ queue.poll(10, TimeUnit.SECONDS));System.out.println("Queue Contains"+ queue);System.out.println("Removing From head: "+ queue.poll(10, TimeUnit.SECONDS));System.out.println("Queue Contains"+ queue);System.out.println("Removing From head: "+queue.poll(10, TimeUnit.SECONDS));System.out.println("Queue Contains"+ queue);System.out.println("Removing From head: "+queue.poll(10, TimeUnit.SECONDS));}}chevron_rightfilter_noneOutput:Queue Contains[423, 233, 356] Removing From head: 423 Queue Contains[233, 356] Removing From head: 233 Queue Contains[356] Removing From head: 356 Queue Contains[] Removing From head: null
Reference:
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ArrayBlockingQueue.html#poll()
Recommended Posts:
- LinkedBlockingQueue poll() method in Java
- LinkedBlockingDeque poll() method in Java
- ConcurrentLinkedQueue poll() method in Java
- Queue poll() method in Java
- ArrayDeque poll() Method in Java
- PriorityBlockingQueue poll() method in Java
- PriorityQueue poll() Method in Java
- ConcurrentLinkedDeque poll() method in Java with Example
- LinkedTransferQueue poll() method in Java
- DelayQueue poll() method in Java with Examples
- ArrayBlockingQueue contains() method in Java
- ArrayBlockingQueue take() method in Java
- ArrayBlockingQueue put() method in Java
- ArrayBlockingQueue add() method in Java
- ArrayBlockingQueue remove() method in Java
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



