Popular Tutorials
Start Learning JavaCertification Courses
Created with over a decade of experience and thousands of feedback.
Java Program to Implement the queue data structure
In this example, we will learn to implement the queue data structure in Java.
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,