queue-java

Queue trong Java là một interface có sẵn trong package java.util và extends interface java.util.Collection.

Cũng giống như List, Queue trong Java là một tập hợp các phần tử có thứ tự (hoặc các đối tượng) nhưng nó thực hiện các thao tác chèn và loại bỏ khác nhau. Chúng ta có thể sử dụng Queue để lưu trữ các phần tử trước khi xử lý các phần tử đó.

Queue trong Java

Trong phần này, chúng ta sẽ thảo luận một số điểm quan trọng về Queue trong Java:

  • Interface java.util.Queue là một kiểu con của interface java.util.Collection.
  • Cũng giống như hàng đợi trong thế giới thực (ví dụ: trong ngân hàng hoặc tại ATM), Hàng đợi chèn các phần tử vào cuối hàng và loại bỏ khỏi đầu hàng.
  • Java Queue đại diện cho một danh sách các phần tử có thứ tự.
  • Java Queue tuân theo thứ tự FIFO để chèn và xóa các phần tử của nó. FIFO là viết tắt của First In First Out.
  • Java Queue hỗ trợ tất cả các phương thức của giao diện Collection.
  • Các triển khai Hàng đợi được sử dụng thường xuyên nhất là LinkedList, ArrayBlockingQueue và PriorityQueue.
  • BlockingQueues không chấp nhận các phần tử rỗng. Nếu chúng ta thực hiện bất kỳ thao tác nào liên quan đến null, nó sẽ ném NullPointerException.
  • BlockingQueues được sử dụng để triển khai các ứng dụng dựa trên Sản xuất / Người tiêu dùng.
  • BlockingQueues là luồng an toàn.
  • Tất cả Hàng đợi có sẵn trong gói java.util là Queue không bị ràng buộc và Queue có sẵn trong gói java.util.concurrent là Queue bị giới hạn.
  • Tất cả Deques đều không an toàn.
  • ConcurrentLinkedQueue là một Hàng đợi an toàn theo luồng không bị ràng buộc dựa trên các nút được liên kết.
  • Tất cả Hàng đợi đều hỗ trợ chèn ở cuối hàng và loại bỏ ở đầu hàng, ngoại trừ Deques.
  • Deques là Queue nhưng chúng hỗ trợ chèn và loại bỏ phần tử ở cả hai đầu.

Sơ đồ lớp hàng đợi Java

Interface Queue trong Java extends Collection. Interface Collection extends Iterable. Một số lớp triển khai Queue thường được sử dụng là LinkedList, PriorityQueue, ArrayBlockingQueue, DelayQueue, LinkedBlockingQueue, PriorityBlockingQueue, v.v .. AbstractQueue cung cấp triển khai khung của interface Queue để giảm nỗ lực trong việc triển khai Queue.

Phương thức hàng đợi Java

Trong phần này, chúng ta sẽ thảo luận về một số phương thức Java Queue hữu ích và được sử dụng thường xuyên:

  1. int size(): để lấy số phần tử trong Set.
  2. boolean isEmpty(): để kiểm tra xem Set có trống hay không.
  3. boolean chứa(Object o): Trả về true nếu Tập hợp này chứa phần tử được chỉ định.
  4. Trình lặp lặp lặp lại (): Trả về một trình lặp trên các phần tử trong tập hợp này. Các phần tử được trả về không theo thứ tự cụ thể.
  5. boolean removeAll (Collection c): Loại bỏ khỏi tập hợp này tất cả các phần tử của nó có trong tập hợp được chỉ định (thao tác tùy chọn).
  6. boolean retainAll(Collection c): Chỉ giữ lại các phần tử trong tập hợp này được chứa trong tập hợp được chỉ định (thao tác tùy chọn).
  7. void clear(): Loại bỏ tất cả các phần tử khỏi tập hợp.
  8. E remove(): Lấy và xóa phần đầu của hàng đợi này.
  9. E poll(): Lấy và loại bỏ phần đầu của hàng đợi này hoặc trả về null nếu hàng đợi này trống.
  10. E peek(): Truy xuất, nhưng không loại bỏ, phần đầu của hàng đợi này hoặc trả về null nếu hàng đợi này trống.
  11. boolean offer(E e): Chèn phần tử được chỉ định vào hàng đợi này nếu có thể làm như vậy ngay lập tức mà không vi phạm các hạn chế về dung lượng.
  12. E element(): Truy xuất, nhưng không loại bỏ, phần đầu của hàng đợi này.
  13. boolean add(E e): Chèn phần tử được chỉ định vào hàng đợi này nếu có thể làm như vậy ngay lập tức mà không vi phạm các giới hạn dung lượng, trả về true khi thành công và ném IllegalStateException nếu hiện không còn dung lượng.
  14. Object[] toArray(): Trả về một mảng chứa tất cả các phần tử trong tập hợp này. Nếu tập hợp này thực hiện bất kỳ đảm bảo nào về thứ tự các phần tử của nó được trả về bởi trình lặp của nó, thì phương thức này phải trả về các phần tử theo cùng một thứ tự.

Trên đây là một số kiến thức về Queue trong Java, trong bài viết sau, mình sẽ làm một số ví dụ về Queue trong Java. Chúc bạn học tốt.

Nguồn video: Ông Dev


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Bài viết liên quan

Leave a Reply

Your email address will not be published. Required fields are marked *