Java Tutorial

Java Control Statements

Object Oriented Programming

Java Built-in Classes

Java File Handling

Java Error & Exceptions

Java Multithreading

Java Synchronization

Java Networking

Java Collections

Java Interfaces

Java Data Structures

Java Collections Algorithms

Advanced Java

Java Miscellaneous

Java APIs & Frameworks

Java Class References

Java Useful Resources

Java - Queue Interface



Queue Interface

The Queue interface is provided in java.util package and it implements the Collection interface. The queue implements FIFO i.e. First In First Out. This means that the elements entered first are the ones that are deleted first. A queue is generally used to hold elements before processing them. Once an element is processed then it is removed from the queue and next item is picked for processing.

Queue Interface Declaration

public interface Queue<E>
   extends Collection<E>

Queue Interface Methods

Following is the list of the important queue methods that all the implementation classes of the Queue interface implement −

Sr.No. Method & Description
1 boolean add(E e)

This method inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions, returning true upon success and throwing an IllegalStateException if no space is currently available.

2 E element()

This method retrieves, but does not remove, the head of this queue.

3 boolean offer(E e)

This method inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions.

4 E peek()

This method retrieves, but does not remove, the head of this queue, or returns null if this queue is empty.

5 E poll()

This method retrieves and removes the head of this queue, or returns null if this queue is empty.

6 E remove()

This method retrieves and removes the head of this queue.

Methods Inherited

This interface inherits methods from the following interfaces −

  • java.util.Collection
  • java.lang.Iterable

Classes that Implement Queue

The following are the classes that implement a Queue to use the functionalities of a Queue -

  • LinkedList
  • ArrayDeque
  • PriorityQueue
Classes that Implement Queue

Interfaces that Extend Queue

The following are the interfaces that extend the Queue interface -

  • Deque
  • BlockingQueue
  • BlockingDeque
Interfaces that Extend Queue

Example of Queue Interface

In this example, we're using a LinkedList instance to show queue add, peek and size operations.

package com.tutorialspoint;

import java.util.LinkedList;
import java.util.Queue;

public class QueueDemo {
   public static void main(String[] args) {
      Queue<Integer> q = new LinkedList<>();
      q.add(6);
      q.add(1);
      q.add(8);
      q.add(4);
      q.add(7);
      System.out.println("The queue is: " + q);
      int num1 = q.remove();
      System.out.println("The element deleted from the head is: " + num1);
      System.out.println("The queue after deletion is: " + q);
      int head = q.peek();
      System.out.println("The head of the queue is: " + head);
      int size = q.size();
      System.out.println("The size of the queue is: " + size);
   }
}

Output

The queue is: [6, 1, 8, 4, 7]
The element deleted from the head is: 6
The queue after deletion is: [1, 8, 4, 7]
The head of the queue is: 1
The size of the queue is: 4
Advertisements