Java Containers: Queue
Giới thiệu về Queue
Giao diện Queue
Giao diện Queue
được định nghĩa như sau:
Lớp AbstractQueue
Lớp AbstractQueue
cung cấp cài đặt cốt lõi cho giao diện Queue
, giúp giảm thiểu công việc cần thiết để triển khai các lớp thực thể của Queue
.
Lớp AbstractQueue
được định nghĩa như sau:
Giao diện Deque
Giao diện Deque
là viết tắt của double ended queue, có nghĩa là hàng đợi hai đầu. Giao diện Deque
kế thừa giao diện Queue
và mở rộng hỗ trợ việc chèn và xóa phần tử ở cả hai đầu của hàng đợi.
Do đó, nó cung cấp các phương thức đặc biệt như:
addLast(e)
- chèn phần tử vào cuối hàng đợi.offerLast(e)
- chèn phần tử vào cuối hàng đợi.removeLast()
- xóa phần tử cuối cùng trong hàng đợi.pollLast()
- xóa và trả về phần tử cuối cùng trong hàng đợi.
Hầu hết các triển khai không giới hạn số lượng phần tử, nhưng giao diện này cũng hỗ trợ deque với giới hạn kích thước cố định.
Lớp ArrayDeque
ArrayDeque
là triển khai của Deque
sử dụng mảng.
ArrayDeque
sử dụng một mảng động để triển khai tất cả các hoạt động cần thiết cho một hàng đợi và ngăn xếp.
Lớp LinkedList
LinkedList
là triển khai của Deque
sử dụng danh sách liên kết.
Ví dụ:
Lớp PriorityQueue
Lớp PriorityQueue
được định nghĩa như sau:
Điểm chính của PriorityQueue
:
PriorityQueue
triển khaiSerializable
, hỗ trợ tuần tự hóa.PriorityQueue
là hàng đợi ưu tiên không giới hạn.- Các phần tử trong
PriorityQueue
được sắp xếp theo thứ tự tự nhiên hoặc theo thứ tự được cung cấp bởiComparator
. PriorityQueue
không chấp nhận phần tử null.PriorityQueue
không an toàn đối với luồng.