Java Deque

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 Dequegiao 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 Queuegiao 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 Dequegiao 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.Dequegó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 Dequegiao diện.

Phương pháp Deque

Dequemở rộng Queuegiao 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 Queuegiao diện, Dequegiao 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ề falsenếu deque đầy.
  • offerLast () - Thêm phần tử được chỉ định vào cuối deque. Trả về falsenế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ề nullnếu deque trống.
  • peekLast () - Trả về phần tử cuối cùng của deque. Trả về nullnế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ề nullnế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ề nullnếu deque trống.

Deque as Stack Data Structure

Các Stacklớp của Java Collectionsframework 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 Dequenhư 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à Dequegiao diện cung cấp để triển khai ngăn xếp:

  • push() - thêm một phần tử vào đầu deque
  • pop() - loại bỏ một phần tử từ đầu deque
  • peek() - 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.

thú vị bài viết...