Array-Based Java Queue Implementation with Example

Array-Based Java Queue Example

Corrected Java Queue Code

The following Java classes implement a simple array-based queue and a tester. Spelling, grammar, and capitalization in comments and output strings have been corrected while preserving all original code logic and content.

class Queue {
  private int front; // Front is the index of the first element in the queue
  private int rear; // Rear is the index of the last element in the queue
  private int maxSize; // maxSize represents the maximum number of elements that can be stored in the queue
  private String arr[];

  Queue(int maxSize) {
    this.front = 0; // Front is 0 when the queue is created
    this.rear = -1; // Rear is -1 when the queue is created
    this.maxSize = maxSize;
    this.arr = new String[maxSize];
  }

  // Checks if the queue is full
  public boolean isFull() {
    if (rear == maxSize - 1) {
      return true;
    }
    return false;
  }

  // Adds a new element to the rear of the queue
  public boolean enqueue(String data) {
    if (isFull()) {
      return false;
    } else {
      arr[++rear] = data;
      return true;
    }
  }

  // Displays all the elements in the queue
  public void display() {
    if (isEmpty())
      System.out.println("Queue is empty!");
    else {
      System.out.println("Displaying queue elements:");
      for (int index = front; index <= rear; index++) {
        System.out.println(arr[index]);
      }
    }
  }

  // Checks if the queue is empty
  public boolean isEmpty() {
    if (front > rear)
      return true;
    return false;
  }

  // Removes an element from the front of the queue
  public String dequeue() {
    if (isEmpty()) {
      return "empty";
    } else {
      String data = arr[this.front];
      arr[front++] = null;
      return data;
    }
  }
}

class Tester {
  public static void main(String[] args) {
    Queue queue = new Queue(5);
    System.out.println("Queue created.\n");

    if (queue.enqueue("Joe"))
      System.out.println("The element is enqueued to the queue!\n");
    else
      System.out.println("Queue is full!\n");

    if (queue.enqueue("Jack"))
      System.out.println("The element is enqueued to the queue!\n");
    else
      System.out.println("Queue is full!\n");

    if (queue.enqueue("Eva"))
      System.out.println("The element is enqueued to the queue!\n");
    else
      System.out.println("Queue is full!\n");

    if (queue.enqueue("Mia"))
      System.out.println("The element is enqueued to the queue!\n");
    else
      System.out.println("Queue is full!\n");

    if (queue.enqueue("Luke"))
      System.out.println("The element is enqueued to the queue!\n");
    else
      System.out.println("Queue is full!\n");

    queue.display();

    if (queue.enqueue("Emma"))
      System.out.println("The element is enqueued to the queue!\n");
    else
      System.out.println("Queue is full!\n");

    String dequeuedElement = queue.dequeue();
    if (dequeuedElement == "empty")
      System.out.println("Queue is empty\n");
    else
      System.out.println("The element dequeued is : " + dequeuedElement + "\n");

    dequeuedElement = queue.dequeue();
    if (dequeuedElement == "empty")
      System.out.println("Queue is empty\n");
    else
      System.out.println("The element dequeued is : " + dequeuedElement + "\n");

    dequeuedElement = queue.dequeue();
    if (dequeuedElement == "empty")
      System.out.println("Queue is empty\n");
    else
      System.out.println("The element dequeued is : " + dequeuedElement + "\n");

    dequeuedElement = queue.dequeue();
    if (dequeuedElement == "empty")
      System.out.println("Queue is empty\n");
    else
      System.out.println("The element dequeued is : " + dequeuedElement + "\n");

    dequeuedElement = queue.dequeue();
    if (dequeuedElement == "empty")
      System.out.println("Queue is empty\n");
    else
      System.out.println("The element dequeued is : " + dequeuedElement + "\n");

    dequeuedElement = queue.dequeue();
    if (dequeuedElement == "empty")
      System.out.println("Queue is empty\n");
    else
      System.out.println("The element dequeued is : " + dequeuedElement + "\n");
  }
}