📘 Premium Read: Access my best content on Medium member-only articles — deep dives into Java, Spring Boot, Microservices, backend architecture, interview preparation, career advice, and industry-standard best practices.
🎓 Top 15 Udemy Courses (80-90% Discount): My Udemy Courses - Ramesh Fadatare — All my Udemy courses are real-time and project oriented courses.
▶️ Subscribe to My YouTube Channel (176K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Introduction
The ArrayDeque
class in Java, part of the java.util
package, is a resizable array implementation of the Deque interface. It provides a double-ended queue, allowing elements to be added or removed from both ends.
Table of Contents
- What is the
ArrayDeque
Class? - Features of
ArrayDeque
- Common Methods
- Examples of Using
ArrayDeque
- Conclusion
1. What is the ArrayDeque Class?
ArrayDeque
is a collection that supports element insertion and removal at both ends, offering an efficient alternative to linked lists and other deque implementations.
2. Features of ArrayDeque
- No capacity restrictions (dynamically resizable).
- Faster than
LinkedList
for queue operations. - Not thread-safe (requires external synchronization for concurrent use).
3. Common Methods
addFirst(E e)
: Inserts the specified element at the front.addLast(E e)
: Inserts the specified element at the end.offerFirst(E e)
: Inserts the specified element at the front without throwing an exception.offerLast(E e)
: Inserts the specified element at the end without throwing an exception.removeFirst()
: Removes and returns the first element.removeLast()
: Removes and returns the last element.pollFirst()
: Retrieves and removes the first element, or returnsnull
if empty.pollLast()
: Retrieves and removes the last element, or returnsnull
if empty.getFirst()
: Retrieves, but does not remove, the first element.getLast()
: Retrieves, but does not remove, the last element.peekFirst()
: Retrieves, but does not remove, the first element, or returnsnull
.peekLast()
: Retrieves, but does not remove, the last element, or returnsnull
.size()
: Returns the number of elements in the deque.
4. Examples of Using ArrayDeque
Example 1: Basic Operations
This example demonstrates basic operations such as adding, removing, and accessing elements.
import java.util.ArrayDeque; public class ArrayDequeExample { public static void main(String[] args) { ArrayDeque<String> deque = new ArrayDeque<>(); // Adding elements deque.addFirst("First"); deque.addLast("Last"); System.out.println("Deque after additions: " + deque); // Accessing elements System.out.println("First element: " + deque.getFirst()); System.out.println("Last element: " + deque.getLast()); // Removing elements deque.removeFirst(); deque.removeLast(); System.out.println("Deque after removals: " + deque); } }
Output:
Deque after additions: [First, Last] First element: First Last element: Last Deque after removals: []
Example 2: Using offer
and poll
This example shows the use of offer
and poll
methods for safe element insertion and removal.
import java.util.ArrayDeque; public class OfferPollExample { public static void main(String[] args) { ArrayDeque<Integer> deque = new ArrayDeque<>(); // Offering elements deque.offerFirst(1); deque.offerLast(2); System.out.println("Deque after offers: " + deque); // Polling elements System.out.println("Polled first: " + deque.pollFirst()); System.out.println("Polled last: " + deque.pollLast()); System.out.println("Deque after polls: " + deque); } }
Output:
Deque after offers: [1, 2] Polled first: 1 Polled last: 2 Deque after polls: []
Example 3: Peeking at Elements
This example demonstrates how to peek at elements without removing them.
import java.util.ArrayDeque; public class PeekExample { public static void main(String[] args) { ArrayDeque<String> deque = new ArrayDeque<>(); deque.add("Element"); System.out.println("Peek first: " + deque.peekFirst()); System.out.println("Peek last: " + deque.peekLast()); } }
Output:
Peek first: Element Peek last: Element
5. Conclusion
The ArrayDeque
class in Java is a versatile and efficient implementation of the Deque interface. It offers fast operations for both ends of the queue, making it a suitable choice for many applications that require double-ended queue functionality.
Comments
Post a Comment
Leave Comment