Skip to content
Related Articles

Related Articles

PriorityBlockingQueue take() method in Java

View Discussion
Improve Article
Save Article
  • Last Updated : 26 Nov, 2018
View Discussion
Improve Article
Save Article

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

Output:

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

Output:

[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–


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!