Thursday, September 18, 2025
HomeLanguagesJavaPriorityBlockingQueue take() method in Java

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


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–

RELATED ARTICLES

Most Popular

Dominic
32299 POSTS0 COMMENTS
Milvus
84 POSTS0 COMMENTS
Nango Kala
6663 POSTS0 COMMENTS
Nicole Veronica
11835 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11895 POSTS0 COMMENTS
Shaida Kate Naidoo
6779 POSTS0 COMMENTS
Ted Musemwa
7053 POSTS0 COMMENTS
Thapelo Manthata
6736 POSTS0 COMMENTS
Umr Jansen
6742 POSTS0 COMMENTS