Java Queue Interface – Guide to the Java Queue and PriorityQueue []

Learn about Java Queue Interface. Check this guide to the Java Queue and PriorityQueue [] along with Implementation, queue class java, methods, examples & more.

Queue Interface In Java – What is a queue?

The queue is a linear data structure used to represent a linear list.Java Queue interface orders the element in FIFO.i.e.First In First Out order. In FIFO, as the name suggests the first element is removed first and the last element is removed at last.

So basically It is an ordered list of objects with its use limited to insert elements at the end of the list and deleting elements from the start of the list. Let us understand first what it exactly states by a real-world example. Just when you go to some malls or grocery stores, there you stand in a queue.

So the person who entered the queue first is the one who will get to the bill counter first and then one by one everyone will be added to the queue after him. And also the person to leave the queue first will be him. So now let us relate that whoever comes first in the queue will get to go out first.I .e.deletion happens from the front but if a new person enters he/she will have to stand where the queue ends.i.e.insertion of an element will happen at the end.

Also, another example would be ticket counter. Even there the person who is first in line goes first and the last one gets to the counter at last. This are the scenarios you notice during your routine life. Say in data structure terms, It just works just like Breadth-First Search.

Other examples can also be seen within a computer system where the queue of tasks are ordered in the list to stage for the line printer, for obtaining the disk storage, and even in the time-sharing system for the utility of CPU.i.e. CPU scheduling, Disk Scheduling or when data is transferred asynchronously (data not necessarily received at the same rate as sent) between two processes.

Examples include IO Buffers, pipes, file IO, etc. So primarily a queue is used within a single program where there are many other programs kept in the queue or one task may generate another task which must have to be executed in turn by keeping them in the queue.


So now you might have clearly understood about the queue. So now let us discuss its characteristics:


Characteristics of Queue : 


  • The Queue interface is available in the java. util package and extends the Collection interface. 
  • This interface is mainly implemented by Priority Queue, Linked List, and ArrayBlockingQueue. But looking at it PriorityQueue and LinkedList implementation are not thread-safe.BlockingQueues have a thread-safe implementation.PriorityBlockingQueue is one alternative if the thread-safe implementation is needed.
  • It follows the First In First Out(FIFO) concept..i.e.It inserts the elements from the end and removes the elements from the start.i.e.beginning of the queue.


  • NullPointerException is thrown if any null operation is performed on BlockingQueues.
  • Deques is a queue that supports insertion and removal of elements from both ends. It is not limited to inserting and deleting from only one end.
  • The queues are termed as bounded queues if those are present in java.util.concurrent package while the queues are said to be unbounded if they are present in java. util package. 


Java Program representing Queue:


Below is a simple Java Program of how you will implement this queue understanding in your program:


//This java code will demonstrate working of queue //interface  

import java.util.LinkedList;

import java.util.Queue;


public class DemoQueue


  public static void main(String[] args)


    Queue<Integer> q = new LinkedList<>();


    //This will Add elements .i.e.{0, 1, 2, 3, 4} to queue

    for (int i=0; i<5; i++)




    // Displays content of the queue.

    System.out.println(“Elements of the queue are -“+q);


    // According to FIFO it will remove head of the queue

    int removeElement = q.remove();

    System.out.println(“Removed element is-” + removeElement);




    // For viewing the head of the queue

    int queueHead = q.peek();

    System.out.println(“head of the queue is -” + queueHead);


//Also rest of the methods of the collection interface //can be used like this.Just like size,contains can be //used with this implementation


    int queueSize = q.size();

    System.out.println(“Size of the queue is-” + queueSize);




Output of the above code will be:


Elements of the queue are -[0, 1, 2, 3, 4]

Removed element is-0

[1, 2, 3, 4]

head of the queue is -1

Size of the queue is-4


Methods in Queue:


1.offer() It is used to insert the specified element into this queue.


2.add() This method adds the elements at the the tail of the queue.To be more specific as per FIFO it adds the elements where the queue ends .i.e. At the very end.At the last place of the linked-list it is added or added as per the priority if it is the case of priority queue implementation.


3.size()- This method returns the actual size of the queue.i.e.It returns the number of elements present in the queue.


4.peek()- If the queue is empty this method returns null.But if it has data then it will return the very first element of the queue.i.e.head of the queue and also it does not remove that element from the queue.It just shows us the first element of the queue without removing it.


5.element()- It is used to retrieve, so This method is similar to peek() because it does not remove the head of the queue.NoSuchElementException is thrown when the queue is empty.


6.remove()- This method removes and returns the head of the queue. NoSuchElementException is thrown if the queue is empty.


7.poll()- This method removes and returns the head of the queue. It returns null if the queue is empty.


8.isEmpty() – This is used to check that whether the set contains any element or it is empty.


9.contains(Object o)-  This method checks whether the element inside the bracket is present or not.If it is present it returns true otherwise it will return false.


10.Iterator iterator()- This method returns an iterator and the elements can be retrieved in any order.

Add a Comment

Your email address will not be published. Required fields are marked *