Trong hướng dẫn này, chúng ta sẽ tìm hiểu về giao diện Deque, cách sử dụng nó và các phương pháp của nó.
Các Deque
giao diện của khuôn khổ bộ sưu tập Java cung cấp các chức năng của một hàng đợi đúp kết thúc. Nó mở rộng Queue
giao diện.
Làm việc của Deque
Trong một hàng đợi thông thường, các phần tử được thêm vào từ phía sau và loại bỏ từ phía trước. Tuy nhiên, trong deque, chúng ta có thể chèn và xóa các phần tử từ cả phía trước và phía sau .
Các lớp triển khai Deque
Để sử dụng các chức năng của Deque
giao diện, chúng ta cần sử dụng các lớp triển khai nó:
- ArrayDeque
- LinkedList
Làm thế nào để sử dụng Deque?
Trong Java, chúng ta phải nhập java.util.Deque
gói để sử dụng Deque
.
// Array implementation of Deque Deque animal1 = new ArrayDeque(); // LinkedList implementation of Deque Deque animal2 = new LinkedList();
Ở đây, chúng ta đã tạo các đối tượng thú1 và thú2 của các lớp ArrayDeque và LinkedList, tương ứng. Các đối tượng này có thể sử dụng các chức năng của Deque
giao diện.
Phương pháp Deque
Vì Deque
mở rộng Queue
giao diện, nó kế thừa tất cả các phương thức của giao diện Hàng đợi.
Bên cạnh các phương thức có sẵn trong Queue
giao diện, Deque
giao diện còn bao gồm các phương thức sau:
- addFirst () - Thêm phần tử được chỉ định vào đầu deque. Ném một ngoại lệ nếu deque đầy.
- addLast () - Thêm phần tử được chỉ định vào cuối deque. Ném một ngoại lệ nếu deque đầy.
- offerFirst () - Thêm phần tử được chỉ định vào đầu deque. Trả về
false
nếu deque đầy. - offerLast () - Thêm phần tử được chỉ định vào cuối deque. Trả về
false
nếu deque đầy. - getFirst () - Trả về phần tử đầu tiên của deque. Ném một ngoại lệ nếu deque trống.
- getLast () - Trả về phần tử cuối cùng của deque. Ném một ngoại lệ nếu deque trống.
- peekFirst () - Trả về phần tử đầu tiên của deque. Trả về
null
nếu deque trống. - peekLast () - Trả về phần tử cuối cùng của deque. Trả về
null
nếu deque trống. - removeFirst () - Trả về và xóa phần tử đầu tiên của deque. Ném một ngoại lệ nếu deque trống.
- removeLast () - Trả về và xóa phần tử cuối cùng của deque. Ném một ngoại lệ nếu deque trống.
- pollFirst () - Trả về và xóa phần tử đầu tiên của deque. Trả về
null
nếu deque trống. - thăm dò ý kiến () - Trả về và xóa phần tử cuối cùng của deque. Trả về
null
nếu deque trống.
Deque as Stack Data Structure
Các Stack
lớp của Java Collections
framework cung cấp việc thực hiện của ngăn xếp.
Tuy nhiên, nó được khuyến khích sử dụng Deque
như một ngăn xếp thay vì lớp Ngăn xếp. Đó là bởi vì các phương thức của Stack
được đồng bộ hóa.
Dưới đây là các phương pháp mà Deque
giao diện cung cấp để triển khai ngăn xếp:
push()
- thêm một phần tử vào đầu dequepop()
- loại bỏ một phần tử từ đầu dequepeek()
- trả về một phần tử từ đầu deque
Triển khai Deque trong ArrayDeque Class
import java.util.Deque; import java.util.ArrayDeque; class Main ( public static void main(String() args) ( // Creating Deque using the ArrayDeque class Deque numbers = new ArrayDeque(); // add elements to the Deque numbers.offer(1); numbers.offerLast(2); numbers.offerFirst(3); System.out.println("Deque: " + numbers); // Access elements of the Deque int firstElement = numbers.peekFirst(); System.out.println("First Element: " + firstElement); int lastElement = numbers.peekLast(); System.out.println("Last Element: " + lastElement); // Remove elements from the Deque int removedNumber1 = numbers.pollFirst(); System.out.println("Removed First Element: " + removedNumber1); int removedNumber2 = numbers.pollLast(); System.out.println("Removed Last Element: " + removedNumber2); System.out.println("Updated Deque: " + numbers); ) )
Đầu ra
Deque: (3, 1, 2) Nguyên tố đầu tiên: 3 Nguyên tố cuối cùng: 2 Nguyên tố đầu tiên bị loại bỏ: 3 Nguyên tố cuối cùng bị loại bỏ: 2 Nguyên tố được cập nhật: (1)
Để tìm hiểu thêm, hãy truy cập Java ArrayDeque.