- Tất cả tài liệu
- Java
- Java Basic
- Java Collections Framework
- Java IO
- Java New IO
- Java Date Time
- Servlet/JSP
- Eclipse Tech
- SWT
- RCP
- RAP
- Eclipse Plugin Tools
- XML & HTML
- Java Opensource
- Java Application Servers
- Maven
- Gradle
- Servlet/Jsp
- Thymeleaf
- Spring
- Struts2
- Hibernate
- Java Web Service
- JavaFX
- SWT
- Oracle ADF
- Android
- iOS
- Python
- Swift
- C#
- C/C++
- Ruby
- Dart
- Batch
- Database
- Oracle
- MySQL
- SQL Server
- PostGres
- Other Database
- Oracle APEX
- Report
- Client
- ECMAScript / Javascript
- TypeScript
- NodeJS
- ReactJS
- Flutter
- AngularJS
- HTML
- CSS
- Bootstrap
- OS
- VPS
- Git
- SAP
- Amazon AWS
- Khác
- Chưa phân loại
- Phần mềm & ứng dụng tiện ích
- VirtualBox
- VmWare
Hướng dẫn và ví dụ Java Queue
- Queue
- Các phương thức của Queue
- Examples
1. Queue
Queue (hàng đợi) là một Interface con của
Collection, vì vậy nó có đầy đủ các tính năng của
Collection. Nó có các phương thức để bạn truy cập hoặc loại bỏ phần tử đầu tiên, và phương thức để chèn một phần tử vào hàng đợi. Nếu bạn muốn truy cập vào một phần tử nào đó bạn phải loại bỏ tất cả các phần tử đứng trước nó ra khỏi hàng đợi.
Queue là một
Collection cho phép phần tử trùng lặp nhưng không cho phép phần tử
null.

Một ví dụ thường thấy là một hàng đợi tại một quầy Bar. Tại một thời điểm chỉ người đứng đầu tiên trên hàng đợi được phục vụ, người mới đến sẽ được chèn vào một vị trí nào đó trên hàng đợi, nó có thể không phải là vị trí cuối cùng, điều này phụ thuộc vào kiểu hàng đợi và độ ưu tiên của người mới đến.public interface Queue<E> extends Collection<E>Hệ thống phân cấp các interface trong
Java Collection Framework:

- Collection
- Deque
- BlockingQueue
- TransferQueue
- BlockingDeque
- Set
- List
- NavigableSet
- SortedSet
Hệ thống phân cấp các lớp trong nhóm
Queue:

Mối quan hệ giữa các interface và các lớp trong nhóm
Queue:

- LinkedList
- ArrayDeque
- PriorityQueue
- LinkedBlockingDeque
- ConcurrentLinkedQueue
- LinkedTransferQueue
- ArrayBlockingQueue
- ConcurrentLinkedDeque
- DelayQueue
- LinkedBlockingQueue
- PriorityBlockingQueue
- SynchronousQueue
LinkedList là một lớp đặc biệt, nó vừa thuộc nhóm
List vừa thuộc nhóm
Queue:

- Hướng dẫn và ví dụ Java LinkedList
2. Các phương thức của Queue
Ngoài các phương thức được thừa kế từ
Collection,
Queue cũng có thêm các phương thức của riêng nó:boolean add(E e); boolean offer(E e); E remove(); E poll(); E element(); E peek();
| Throws exception | Returns special value |
| Insert | boolean add(E) | boolean offer(E) |
| Remove | E remove() | E poll() |
| Examine | E element() | E peek() |
boolean add(E)* / boolean offer(E)

| boolean add(E) | Chèn một phần tử vào Queue. Nếu không còn chỗ trống để chèn phương thức này sẽ ném ra ngoại lệ. Phương thức trả về true nếu việc chèn thành công. |
| boolean offer(E) | Chèn một phần tử vào Queue. Nếu Queue không còn chỗ trống hoặc chèn không thành công phương thức trả về false. |
Khi một phần tử được chèn vào
Queue, vị trí của nó được quyết định bởi kiểu
Queue và độ ưu tiên của phần tử, bạn không thể chỉ định vị trí của nó.Tuỳ vào kiểu
Queue mà bạn đang sử dụng, nó có thể giới hạn số lượng các phần tử, hoặc tự động tăng kích thước.E remove()* / E poll()

| E remove() | Trả về phần tử đầu tiên của Queue đồng thời loại bỏ nó ra khỏi Queue. Phương thức này ném ra ngoại lệ nếu Queue không có phần tử nào. |
| E poll() | Trả về phần tử đầu tiên của Queue đồng thời loại bỏ nó ra khỏi Queue. Phương thức này trả về null nếu Queue không có phần tử nào. |
E element() * / E peek()

| E element() | Trả về phần tử đầu tiên của Queue nhưng không loại bỏ nó ra khỏi Queue. Phương thức này ném ra ngoại lệ nếu Queue không có phần tử nào. |
| E peek() | Trả về phần tử đầu tiên của Queue nhưng không loại bỏ nó ra khỏi Queue. Phương thức này trả về null nếu Queue không có phần tử nào. |
3. Examples
LinkedList(Queue)
LinkedList đại diện cho một hàng đợi truyền thống. Phương thức
add/offer sẽ thêm một phần tử vào đuôi của hàng đợi này.LinkedListEx1.javapackage org.o7planning.queue.ex; import java.util.LinkedList; import java.util.Queue; public class LinkedListEx1 { public static void main(String[] args) { // Create Queue Queue<String> queue = new LinkedList<String>(); queue.offer("One"); queue.offer("Two"); queue.offer("Three"); queue.offer("Four"); queue.offer("Five"); String current; while((current = queue.poll())!= null) { System.out.println(current); } } }Output:One Two Three Four FivePriorityQueue
PriorityQueue là một
Queue có khả năng tự động xắp xếp các phần tử theo thứ tự ưu tiên của chúng hoặc theo một
Comparator được cung cấp. Điều này có nghĩa là một phần tử được chèn vào
PriorityQueue có thể không phải ở vị trí cuối cùng.

Ví dụ, một
PriorityQueue<String> sắp xếp thứ tự các phần tử theo alphabet.PriorityQueueEx1.javapackage org.o7planning.queue.ex; import java.util.PriorityQueue; import java.util.Queue; public class PriorityQueueEx1 { public static void main(String[] args) { // Create Queue Queue<String> queue = new PriorityQueue<String>(); queue.offer("One"); queue.offer("Two"); queue.offer("Three"); queue.offer("Four"); queue.offer("Five"); String current; while((current = queue.poll())!= null) { System.out.println(current); } } }Output:Five Four One Three Two
- PriorityQueue
- PriorityBlockingQueue
Các hướng dẫn Java Collections Framework
- Hướng dẫn và ví dụ Java PriorityBlockingQueue
- Hướng dẫn sử dụng nền tảng tập hợp trong Java (Java Collection Framework)
- Hướng dẫn và ví dụ Java SortedSet
- Hướng dẫn và ví dụ Java List
- Hướng dẫn và ví dụ Java Iterator
- Hướng dẫn và ví dụ Java NavigableSet
- Hướng dẫn và ví dụ Java ListIterator
- Hướng dẫn và ví dụ Java ArrayList
- Hướng dẫn và ví dụ Java CopyOnWriteArrayList
- Hướng dẫn và ví dụ Java LinkedList
- Hướng dẫn và ví dụ Java Set
- Hướng dẫn và ví dụ Java TreeSet
- Hướng dẫn và ví dụ Java CopyOnWriteArraySet
- Hướng dẫn và ví dụ Java Queue
- Hướng dẫn và ví dụ Java Deque
- Hướng dẫn và ví dụ Java IdentityHashMap
- Hướng dẫn và ví dụ Java WeakHashMap
- Hướng dẫn và ví dụ Java Map
- Hướng dẫn và ví dụ Java SortedMap
- Hướng dẫn và ví dụ Java NavigableMap
- Hướng dẫn và ví dụ Java HashMap
- Hướng dẫn và ví dụ Java TreeMap
- Hướng dẫn và ví dụ Java PriorityQueue
- Hướng dẫn và ví dụ Java BlockingQueue
- Hướng dẫn và ví dụ Java ArrayBlockingQueue
- Hướng dẫn và ví dụ Java TransferQueue
Show More
- Java cơ bản
- Các hướng dẫn Java Date Time
- Các hướng dẫn Java IO
- Các hướng dẫn Maven
- Các hướng dẫn Java Web Services
- Các hướng dẫn Spring Boot
- Các hướng dẫn Spring Cloud
- Các hướng dẫn Java Oracle ADF
- Các hướng dẫn lập trình JavaFX
- Các hướng dẫn lập trình Java SWT
- Các hướng dẫn Gradle

Các hướng dẫn Java Collections Framework
- Hướng dẫn và ví dụ Java PriorityBlockingQueue
- Hướng dẫn sử dụng nền tảng tập hợp trong Java (Java Collection Framework)
- Hướng dẫn và ví dụ Java SortedSet
- Hướng dẫn và ví dụ Java List
- Hướng dẫn và ví dụ Java Iterator
- Hướng dẫn và ví dụ Java NavigableSet
- Hướng dẫn và ví dụ Java ListIterator
- Hướng dẫn và ví dụ Java ArrayList
- Hướng dẫn và ví dụ Java CopyOnWriteArrayList
- Hướng dẫn và ví dụ Java LinkedList
- Hướng dẫn và ví dụ Java Set
- Hướng dẫn và ví dụ Java TreeSet
- Hướng dẫn và ví dụ Java CopyOnWriteArraySet
- Hướng dẫn và ví dụ Java Queue
- Hướng dẫn và ví dụ Java Deque
- Hướng dẫn và ví dụ Java IdentityHashMap
- Hướng dẫn và ví dụ Java WeakHashMap
- Hướng dẫn và ví dụ Java Map
- Hướng dẫn và ví dụ Java SortedMap
- Hướng dẫn và ví dụ Java NavigableMap
- Hướng dẫn và ví dụ Java HashMap
- Hướng dẫn và ví dụ Java TreeMap
- Hướng dẫn và ví dụ Java PriorityQueue
- Hướng dẫn và ví dụ Java BlockingQueue
- Hướng dẫn và ví dụ Java ArrayBlockingQueue
- Hướng dẫn và ví dụ Java TransferQueue
Show More
- Java cơ bản
- Các hướng dẫn Java Date Time
- Các hướng dẫn Java IO
- Các hướng dẫn Maven
- Các hướng dẫn Java Web Services
- Các hướng dẫn Spring Boot
- Các hướng dẫn Spring Cloud
- Các hướng dẫn Java Oracle ADF
- Các hướng dẫn lập trình JavaFX
- Các hướng dẫn lập trình Java SWT
- Các hướng dẫn Gradle
Các bài viết mới nhất
- Dart Stream Single và Broadcast
- Xử lý lỗi trong Dart Stream
- Hướng dẫn và ví dụ Dart Stream
- So sánh đối tượng trong Dart với thư viện Equatable
- Flutter BloC cho người mới bắt đầu
- Xử lý lỗi 404 trong Flutter GetX
- Ví dụ đăng nhập và đăng xuất với Flutter Getx
- Hướng dẫn và ví dụ Flutter NumberTextInputFormatter
- Hướng dẫn và ví dụ Flutter multi_dropdown
- Hướng dẫn và ví dụ Flutter flutter_form_builder
- Hướng dẫn và ví dụ Flutter GetX obs Obx
- Hướng dẫn và ví dụ Flutter GetX GetBuilder
- Từ khoá part và part of trong Dart
- Hướng dẫn và ví dụ Flutter InkWell
- Hướng dẫn và ví dụ Flutter Radio
- Bài thực hành Flutter SharedPreferences
- Hướng dẫn và ví dụ Flutter Slider
- Hướng dẫn và ví dụ Flutter SkeletonLoader
- Chỉ định cổng cố định cho Flutter Web trên Android Studio
- Tạo Module trong Flutter
Show More
- Các hướng dẫn Java Collections Framework