Introduction
The java.util.queue is an interface in Java and extends from java.util.Collection. In this article, we will learn about the Queue interface, its methods, and the types of Queue provided by the Java programming language.
Queue Interface in Java
A Queue is a FIFO (First In, First Out) abstract data type (ADT). In other words, the elements are removed in the order in which they were inserted. The java.util.queue is an interface in Java and extends from java.util.Collection. Some of the commonly used Queue implementation classes include a LinkedList, an ArrayDeque, and a PriorityQueue.
The Queue collection is used to hold the elements about to be processed and provides various operations like the insertion, removal, etc. 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 i.e. it follows the FIFO or the First-In-First-Out principle. Being an interface, the queue needs a concrete class for the declaration, and the most common classes are the PriorityQueue and LinkedList in Java. It is to be noted that both implementations are not thread-safe.
![java-queue-interface]()
In the queue, the first element is inserted from one end called the REAR(also called tail).
In the queue, the removal of an existing element takes place from the other end called FRONT(also called head).
Operations in Queue interface in Java
In Java, two operations are performed by the queue interface, for insertion Enqueue, and for deletion Dequeue.
Enqueue
Enqueue adds an element at the beginning. If the queue is full, then it is overflow.
Enqueue performs the following tasks in the queue for example:
- Check if the queue is full.
- If the queue is full, then print"Queue overflow".
- Else increment REAR by 1.
- 4) Assign QUEUE[REAR] = ELEMENT.
Dequeue
Dequeue deletes an element at the end of the queue. If the queue is empty, then it underflows.
Dequeue performs the following tasks in the queue for example:
- Check if the queue is empty.
- If the queue is full, then print"Queue "underflow.
- Copy the element at the front of the queue to some temporary variable, TEMP= QUEUE[FRONT].
- Increment FRONT by 1.
- Print temp and delete it.
The elements in the queue are arranged sequentially, and that's why the queue is said to be a Linear data structure.
For example, a line of the customers in a shop. So, the customer who will come first to the shop will be the one who will get the service first, and so on.
The complete program of the queue interface example in Java is listed below.
The above program generates the following output.
Methods of Queue Interface in Java
The java.lang.Math class contains various methods for performing basic numeric operations such as the logarithm, cube root, and trigonometric functions, etc. The various Java math methods are as follows:
1) queue.add() method in Java
This method adds the specified element at the end of the Queue. Returns true if the element is added successfully or false if the element is not added. That happens when the Queue is at its max capacity and cannot take any more elements.
The complete program of queue.add() method example is listed below.
The above program generates the following output.
2) queue.offer() method in Java
The queue.offer() method of Queue Interface inserts the specified element into this queue if it is possible to do so immediately without violating capacity restrictions. This method takes an e parameter which is the element that has to be added into the stack. It returns true if the element is inserts; otherwise returns false.
The complete program of the queue.offer() method example is listed below.
The above program generates the following output.
![queue-example3-output]()
3) queue.peek() method in Java
The queue.peek() method returns the element at the head of the queue. It returns null if the queue is empty. The element is not removed from the queue.
The complete program of queue.peek() method example is listed below.
The above program generates the following output.
Another example of showing the result of a queue.peek() method if the queue is empty.
The above program generates the following output.
4) queue.poll() method in Java
The queue.poll() method retrieves and removes the head of this queue or returns null if this queue is empty. The complete program of queue.poll() method example is listed below.
The above program generates the following output.
5) queue.size() method in Java
The queue.size() method is used to get the number of elements in the Set. The complete program of queue.size() method example is listed below.
The above program generates the following output.
6) queue.isEmpty() method in Java
The queue.empty() method is used to check whether the queue is empty or not. It returns true if the queue is empty; otherwise false. The complete program of queue.empty() method example is listed below.
The above program generates the following output.
7) queue.contains() method in Queue
The queue.contains() returns true if this set contains the specified element. It takes an argument as the specified element which has to be searched into the queue. The complete program of the queue.contains() method example is listed below.
The above program generates the following output.
8) queue.remove() method in Queue
The queue.remove() method retrieves and removes the head of this queue. The complete program of queue.remove() method example is listed below.
The above program generates the following output.
![queue-example11-output]()
9) queue.removeAll() method in Queue
The queue.removeAll() method removes from this set all of its elements that are contained in the specified collection (optional operation). It takes the collection as the argument and returns true if the elements are removed otherwise false.
The complete program of the queue.removeAll() method example is listed below.
The above program generates the following output.
Summary
In this article, we learned about the Queue interface and its methods in Java programming language and how to use them in Java programs.