Java Program to Implement the queue data structure

To understand this example, you should have the knowledge of the following Java programming topics:


Example 1: Java program to implement Queue

 public class Queue { int SIZE = 5; int items[] = new int[SIZE]; int front, rear; Queue() { front = -1; rear = -1; } // check if the queue is full boolean isFull() { if (front == 0 && rear == SIZE - 1) { return true; } return false; } // check if the queue is empty boolean isEmpty() { if (front == -1) return true; else return false; } // insert elements to the queue void enQueue(int element) { // if queue is full if (isFull()) { System.out.println("Queue is full"); } else { if (front == -1) { // mark front denote first element of queue front = 0; } rear++; // insert element at the rear items[rear] = element; System.out.println("Insert " + element); } } // delete element from the queue int deQueue() { int element; // if queue is empty if (isEmpty()) { System.out.println("Queue is empty"); return (-1); } else { // remove element from the front of queue element = items[front]; // if the queue has only one element if (front >= rear) { front = -1; rear = -1; } else { // mark next element as the front front++; } System.out.println( element + " Deleted"); return (element); } } // display element of the queue void display() { int i; if (isEmpty()) { System.out.println("Empty Queue"); } else { // display the front of the queue System.out.println("\nFront index-> " + front); // display element of the queue System.out.println("Items -> "); for (i = front; i <= rear; i++) System.out.print(items[i] + " "); // display the rear of the queue System.out.println("\nRear index-> " + rear); } } public static void main(String[] args) { // create an object of Queue class Queue q = new Queue(); // try to delete element from the queue // currently queue is empty // so deletion is not possible q.deQueue(); // insert elements to the queue for(int i = 1; i < 6; i ++) { q.enQueue(i); } // 6th element can't be added to queue because queue is full q.enQueue(6); q.display(); // deQueue removes element entered first i.e. 1 q.deQueue(); // Now we have just 4 elements q.display(); } }

Output

 Queue is empty Insert 1 Insert 2 Insert 3 Insert 4 Insert 5 Queue is full Front index-> 0 Items -> 1 2 3 4 5 Rear index-> 4 1 Deleted Front index-> 1 Items -> 2 3 4 5 Rear index-> 4

In the above example, we have implemented the queue data structure in Java.

To learn the working about the queue, visit Queue Data Structure.


Example 2: Implement queue using Queue interface

Java provides a built Queue interface that can be used to implement a queue.

 import java.util.Queue; import java.util.LinkedList; class Main { public static void main(String[] args) { // Creating Queue using the LinkedList class Queue<Integer> numbers = new LinkedList<>(); // enqueue // insert element at the rear of the queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // dequeue // delete element from the front of the queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Queue after deletion: " + numbers); } }

Output

 Queue: [1, 2, 3] Removed Element: 1 Queue after deletion: [2, 3]

In the above example, we have used the Queue interface to implement the queue in Java. Here, we have used the LinkedList class that implements the Queue interface.

  • numbers.offer() - insert elements to the rear of the queue
  • numbers.poll() - remove an element from the front of the queue

Notice, we have used the angle brackets <Integer> while creating the queue. It represents that the queue is of the generic type.

We can also use other interfaces and classes instead of Queue and LinkedList. For example,

Did you find this article helpful?

Your builder path starts here. Builders don't just know how to code, they create solutions that matter.

Escape tutorial hell and ship real projects.

Try Programiz PRO
  • Real-World Projects
  • On-Demand Learning
  • AI Mentor
  • Builder Community