The Java Queue Interface works like a fast-food restaurant’s drive-thru following the first-in-first-out or FIFO principle. It enables developers to queue objects or elements in the queue and execute functions like deletion, insertion, and inspection orderly.
Table of Contents
The queue interface performs this using implementation classes like LinkedList, PriorityQueue, ArrayBlockingQueue, DelayQueue, and PriorityBlockingQueue.
In this article, we’ll provide a hands-on guide to the Java Queue Interface and discuss its implementation with Java Queue examples. So, without further ado, let’s dive in.
So, it is established by now that the Java Queue Interface is a tool that enables us to represent a collection of objects or elements in a specified order. Now, we will describe how to use this feature for maximum impact.
import java.util.Queue; import java.util.LinkedList;
Queue<Type> queue = new LinkedList<>(); *Type denotes the actual type of object or element to be stored in the queue.
queue.add(element); // Throws an exception if the operation fails queue.offer(element); // Returns false if the operation fails
Type element = queue.remove(); // Throws an exception if the queue is empty Type element = queue.poll(); // Returns null if the queue is empty
boolean isEmpty = queue.isEmpty();
import java.util.Queue; import java.util.LinkedList; public class QueueExample { public static void main(String[] args) { Queue<String> queue = new LinkedList<>(); // Add elements to the queue queue.add("Apple"); queue.add("Banana"); queue.add("Orange"); // Retrieve and remove elements from the queue String element = queue.remove(); System.out.println("Removed: " + element); // Retrieve, but do not remove, the head of the queue String head = queue.peek(); System.out.println("Head: " + head); // Check if the queue is empty boolean isEmpty = queue.isEmpty(); System.out.println("Is empty: " + isEmpty); } }
Output:
Removed: Apple Head: Banana Is empty: false
Let’s now see some Java Queue Implementation examples to see the feature in action and its use.
LinkedList Example:
import java.util.LinkedList; public class LinkedListExample { public static void main(String[] args) { // Create a LinkedList LinkedList<String> linkedList = new LinkedList<>(); // Add elements to the LinkedList linkedList.add("Apple"); linkedList.add("Banana"); linkedList.add("Orange"); // Print the LinkedList System.out.println("LinkedList: " + linkedList); // Add an element at the beginning of the LinkedList linkedList.addFirst("Mango"); System.out.println("After adding at the beginning: " + linkedList); // Add an element at the end of the LinkedList linkedList.addLast("Grapes"); System.out.println("After adding at the end: " + linkedList); // Get the first and last elements of the LinkedList String firstElement = linkedList.getFirst(); String lastElement = linkedList.getLast(); System.out.println("First Element: " + firstElement); System.out.println("Last Element: " + lastElement); // Remove an element from the LinkedList linkedList.remove(1); // Remove the element at index 1 System.out.println("After removing element at index 1: " + linkedList); // Check if the LinkedList contains an element boolean containsMango = linkedList.contains("Mango"); System.out.println("Contains Mango? " + containsMango); // Get the size of the LinkedList int size = linkedList.size(); System.out.println("Size: " + size); // Clear the LinkedList linkedList.clear(); System.out.println("After clearing the LinkedList: " + linkedList); } }
LinkedList: [Apple, Banana, Orange] After adding at the beginning: [Mango, Apple, Banana, Orange] After adding at the end: [Mango, Apple, Banana, Orange, Grapes] First Element: Mango Last Element: Grapes After removing element at index 1: [Mango, Banana, Orange, Grapes] Contains Mango? true Size: 4 After clearing the LinkedList: []
PriorityQueue:
import java.util.PriorityQueue; public class PriorityQueueExample { public static void main(String[] args) { // Create a PriorityQueue PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(); // Add elements to the PriorityQueue priorityQueue.add(5); priorityQueue.add(1); priorityQueue.add(3); priorityQueue.add(2); priorityQueue.add(4); // Print the PriorityQueue System.out.println("PriorityQueue: " + priorityQueue); // Retrieve and remove the minimum element from the PriorityQueue int minElement = priorityQueue.poll(); System.out.println("Minimum Element: " + minElement); // Print the PriorityQueue after removing the minimum element System.out.println("PriorityQueue after poll: " + priorityQueue); // Retrieve, but do not remove, the minimum element from the PriorityQueue int peekElement = priorityQueue.peek(); System.out.println("Peeked Element: " + peekElement); // Check if the PriorityQueue contains an element boolean containsElement = priorityQueue.contains(3); System.out.println("Contains 3? " + containsElement); // Get the size of the PriorityQueue int size = priorityQueue.size(); System.out.println("Size: " + size); // Clear the PriorityQueue priorityQueue.clear(); System.out.println("PriorityQueue after clearing: " + priorityQueue); } }
PriorityQueue: [1, 2, 3, 5, 4] Minimum Element: 1 PriorityQueue after poll: [2, 4, 3, 5] Peeked Element: 2 Contains 3? true Size: 4 PriorityQueue after clearing: []
The Java Queue Interface helps developers handle and process data structures more efficiently in Java applications and reorder objects or elements seamlessly. Further, it enables us to manipulate data via implementing classes like LinkedList and PriorityQueue and also works effectively in cases where thread safety is a priority, as it supports safe multithreading without taking up too much space.
Also Read: Getting Started With Java Visualizers To Enhance User Experience
Create a free profile and find your next great opportunity.
Sign up and find a perfect match for your team.
Xperti vets skilled professionals with its unique talent-matching process.
Connect and engage with technology enthusiasts.
© Xperti.io All Rights Reserved
Privacy
Terms of use