Trong hướng dẫn này, chúng ta sẽ tìm hiểu về giao diện Java Queue và các phương thức của nó.
Các Queue
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 cấu trúc dữ liệu hàng đợi. Nó mở rộng Collection
giao diện.
Các lớp triển khai hàng đợi
Vì Queue
là một giao diện, chúng tôi không thể cung cấp việc triển khai trực tiếp nó.
Để sử dụng các chức năng của Queue
, chúng ta cần sử dụng các lớp triển khai nó:
- ArrayDeque
- LinkedList
- Hàng đợi ưu tiên
Các giao diện mở rộng hàng đợi
Các Queue
giao diện cũng được mở rộng bởi subinterface khác nhau:
Deque
BlockingQueue
BlockingDeque
Hoạt động của cấu trúc dữ liệu hàng đợi
Trong hàng đợi, các phần tử được lưu trữ và truy cập theo cách First In, First Out . Có nghĩa là, các phần tử được thêm vào từ phía sau và loại bỏ từ phía trước .
Làm thế nào để sử dụng Hàng đợi?
Trong Java, chúng ta phải nhập java.util.Queue
gói để sử dụng Queue
.
// LinkedList implementation of Queue Queue animal1 = new LinkedList(); // Array implementation of Queue Queue animal2 = new ArrayDeque(); // Priority Queue implementation of Queue Queue animal 3 = new PriorityQueue();
Ở đây, chúng tôi đã tạo các đối tượng thú1, thú2 và thú3 của các lớp LinkedList
, ArrayDeque
và PriorityQueue
tương ứng. Các đối tượng này có thể sử dụng các chức năng của Queue
giao diện.
Phương thức xếp hàng
Các Queue
giao diện bao gồm tất cả các phương pháp của Collection
giao diện. Đó là vì Collection
là siêu giao diện của Queue
.
Một số phương pháp thường được sử dụng của Queue
giao diện là:
- add () - Chèn phần tử được chỉ định vào hàng đợi. Nếu nhiệm vụ thành công,
add()
trả vềtrue
, nếu không, nó ném một ngoại lệ. - offer () - Chèn phần tử được chỉ định vào hàng đợi. Nếu nhiệm vụ thành công thì
offer()
trả vềtrue
, nếu không thì trả vềfalse
. - element () - Trả về phần đầu của hàng đợi. Ném một ngoại lệ nếu hàng đợi trống.
- peek () - Trả về phần đầu của hàng đợi. Trả về
null
nếu hàng đợi trống. - remove () - Trả về và xóa phần đầu của hàng đợi. Ném một ngoại lệ nếu hàng đợi trống.
- thăm dò ý kiến () - Trả về và xóa phần đầu của hàng đợi. Trả về
null
nếu hàng đợi trống.
Triển khai giao diện hàng đợi
1. Triển khai lớp LinkedList
import java.util.Queue; import java.util.LinkedList; class Main ( public static void main(String() args) ( // Creating Queue using the LinkedList class Queue numbers = new LinkedList(); // offer elements to the Queue numbers.offer(1); numbers.offer(2); numbers.offer(3); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Đầu ra
Hàng đợi: (1, 2, 3) Phần tử được truy cập: 1 Phần tử bị xóa: 1 Hàng đã cập nhật: (2, 3)
Để tìm hiểu thêm, hãy truy cập Java LinkedList.
2. Triển khai lớp PriorityQueue
import java.util.Queue; import java.util.PriorityQueue; class Main ( public static void main(String() args) ( // Creating Queue using the PriorityQueue class Queue numbers = new PriorityQueue(); // offer elements to the Queue numbers.offer(5); numbers.offer(1); numbers.offer(2); System.out.println("Queue: " + numbers); // Access elements of the Queue int accessedNumber = numbers.peek(); System.out.println("Accessed Element: " + accessedNumber); // Remove elements from the Queue int removedNumber = numbers.poll(); System.out.println("Removed Element: " + removedNumber); System.out.println("Updated Queue: " + numbers); ) )
Đầu ra
Hàng đợi: (1, 5, 2) Phần tử được truy cập: 1 Phần tử bị xóa: 1 Hàng đợi cập nhật: (2, 5)
Để tìm hiểu thêm, hãy truy cập Java PriorityQueue.
Trong các hướng dẫn tiếp theo, chúng ta sẽ tìm hiểu về các Queue
giao diện con khác nhau của giao diện và cách triển khai của nó một cách chi tiết.