🎓 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 (178K+ subscribers): Java Guides on YouTube
▶️ For AI, ChatGPT, Web, Tech, and Generative AI, subscribe to another channel: Ramesh Fadatare on YouTube
Introduction
The Deque interface in Java, part of the java.util package, represents a double-ended queue that allows elements to be added or removed from both ends.
Table of Contents
- What is the
DequeInterface? - Common Implementations
- Common Methods
- Examples of Using the
DequeInterface - Conclusion
1. What is the Deque Interface?
The Deque (Double-Ended Queue) interface extends the Queue interface and provides methods for manipulating elements at both the front and back of the queue.
2. Common Implementations
- ArrayDeque: A resizable array implementation that is efficient for most operations. It is not thread-safe.
- LinkedList: Provides a linked list implementation of the
Dequeinterface, allowing efficient insertion and removal of elements from both ends.
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, returnstrueif successful.offerLast(E e): Inserts the specified element at the end, returnstrueif successful.removeFirst(): Removes and returns the first element.removeLast(): Removes and returns the last element.pollFirst(): Retrieves and removes the first element, or returnsnullif empty.pollLast(): Retrieves and removes the last element, or returnsnullif 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.
4. Examples of Using the Deque Interface
Example 1: Using addFirst and addLast
This example demonstrates adding elements to both ends of a Deque.
import java.util.ArrayDeque;
import java.util.Deque;
public class AddExample {
public static void main(String[] args) {
Deque<String> deque = new ArrayDeque<>();
deque.addFirst("Front");
deque.addLast("Back");
System.out.println("Deque after additions: " + deque);
}
}
Output:
Deque after additions: [Front, Back]
Example 2: Using offerFirst and offerLast
This example shows how to use offerFirst and offerLast to add elements.
import java.util.ArrayDeque;
import java.util.Deque;
public class OfferExample {
public static void main(String[] args) {
Deque<Integer> deque = new ArrayDeque<>();
deque.offerFirst(1);
deque.offerLast(2);
System.out.println("Deque after offers: " + deque);
}
}
Output:
Deque after offers: [1, 2]
Example 3: Using removeFirst and removeLast
This example demonstrates removing elements from both ends of a Deque.
import java.util.ArrayDeque;
import java.util.Deque;
public class RemoveExample {
public static void main(String[] args) {
Deque<String> deque = new ArrayDeque<>();
deque.add("A");
deque.add("B");
System.out.println("Removed from front: " + deque.removeFirst());
System.out.println("Removed from back: " + deque.removeLast());
}
}
Output:
Removed from front: A
Removed from back: B
Example 4: Using pollFirst and pollLast
This example shows how to use pollFirst and pollLast to retrieve and remove elements.
import java.util.ArrayDeque;
import java.util.Deque;
public class PollExample {
public static void main(String[] args) {
Deque<Integer> deque = new ArrayDeque<>();
deque.add(10);
deque.add(20);
System.out.println("Polled from front: " + deque.pollFirst());
System.out.println("Polled from back: " + deque.pollLast());
}
}
Output:
Polled from front: 10
Polled from back: 20
Example 5: Using getFirst and getLast
This example demonstrates retrieving elements from both ends without removal.
import java.util.ArrayDeque;
import java.util.Deque;
public class GetExample {
public static void main(String[] args) {
Deque<String> deque = new ArrayDeque<>();
deque.add("First");
deque.add("Last");
System.out.println("First element: " + deque.getFirst());
System.out.println("Last element: " + deque.getLast());
}
}
Output:
First element: First
Last element: Last
Example 6: Using peekFirst and peekLast
This example shows how to peek at elements at both ends of a Deque.
import java.util.ArrayDeque;
import java.util.Deque;
public class PeekExample {
public static void main(String[] args) {
Deque<String> deque = new ArrayDeque<>();
deque.add("Start");
deque.add("End");
System.out.println("Peek first: " + deque.peekFirst());
System.out.println("Peek last: " + deque.peekLast());
}
}
Output:
Peek first: Start
Peek last: End
5. Conclusion
The Deque interface in Java provides versatile methods for working with elements at both ends of a queue. It is useful for scenarios requiring double-ended queue operations, enhancing flexibility in data manipulation. Common implementations like ArrayDeque and LinkedList provide efficient options for different use cases.
My Top and Bestseller Udemy Courses. The sale is going on with a 70 - 80% discount. The discount coupon has been added to each course below:
Build REST APIs with Spring Boot 4, Spring Security 7, and JWT
[NEW] Learn Apache Maven with IntelliJ IDEA and Java 25
ChatGPT + Generative AI + Prompt Engineering for Beginners
Spring 7 and Spring Boot 4 for Beginners (Includes 8 Projects)
Available in Udemy for Business
Building Real-Time REST APIs with Spring Boot - Blog App
Available in Udemy for Business
Building Microservices with Spring Boot and Spring Cloud
Available in Udemy for Business
Java Full-Stack Developer Course with Spring Boot and React JS
Available in Udemy for Business
Build 5 Spring Boot Projects with Java: Line-by-Line Coding
Testing Spring Boot Application with JUnit and Mockito
Available in Udemy for Business
Spring Boot Thymeleaf Real-Time Web Application - Blog App
Available in Udemy for Business
Master Spring Data JPA with Hibernate
Available in Udemy for Business
Spring Boot + Apache Kafka Course - The Practical Guide
Available in Udemy for Business
Comments
Post a Comment
Leave Comment