PriorityBlockingQueue take() method in Java

The take() method of PriorityBlockingQueue returns head of the queue after removing it. If queue is empty, then this method will wait until an element becomes available.
Syntax:
public E take() throws InterruptedException
Returns: This method returns value at the head of this PriorityBlockingQueue.
Exception: This method throws InterruptedException, if interrupted while waiting for an element to become available.
Below programs illustrate take() method of PriorityBlockingQueue:
Example 1: To demonstrate take() method on PriorityBlockingQueue which contains a list of numbers.
// Java Program Demonstrate take()// method of PriorityBlockingQueue import java.util.concurrent.PriorityBlockingQueue;import java.util.*; public class GFG { public static void main(String[] args) throws InterruptedException { // create object of PriorityBlockingQueue PriorityBlockingQueue<Integer> PrioQueue = new PriorityBlockingQueue<Integer>(); // Add numbers to PriorityBlockingQueue PrioQueue.put(7855642); PrioQueue.put(35658786); PrioQueue.put(5278367); PrioQueue.put(74381793); // before removing print queue System.out.println("Queue: " + PrioQueue); // Apply take() method int head = PrioQueue.take(); // Print head of queue using take() method System.out.println("Head of PriorityBlockingQueue" + " using take(): " + head); System.out.print("After removing head, Queue: " + PrioQueue); }} |
Queue: [5278367, 35658786, 7855642, 74381793] Head of PriorityBlockingQueue using take(): 5278367 After removing head, Queue: [7855642, 35658786, 74381793]
Example 2: To demonstrate take() method on PriorityBlockingQueue which contains String
// Java Program Demonstrate take()// method of PriorityBlockingQueue import java.util.concurrent.PriorityBlockingQueue;import java.util.*; public class GFG { public static void main(String[] args) throws InterruptedException { // create object of PriorityBlockingQueue // which contains Strings PriorityBlockingQueue<String> names = new PriorityBlockingQueue<String>(); // Add string names.add("Geeks"); names.add("forGeeks"); names.add("A computer portal"); // print list of names System.out.println(names); // Apply take() method String head = names.take(); // Print head of queue using take() method System.out.println("Head of Queue: " + head); System.out.print("After removing head, Queue: " + names); }} |
[A computer portal, forGeeks, Geeks] Head of Queue: A computer portal After removing head, Queue: [Geeks, forGeeks]
Reference: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/PriorityBlockingQueue.html#take–



