Stack, Queue và Priority trong Java (phần 2)


Stack, Queue và Priority trong Java (phần 2)
Phần 2: Queue
Queue là gì?
Queue là một cách thức lưu trữ và lấy dữ liệu theo kiểu hàng đợi. Bạn có thể tưởng tượng 1 hàng người đi mua vé, ai tới trước thì sẽ mua vé và ra trước
Bạn có 5 người đang đứng đợi mua vé theo thứ tự từ trái sang lần lượt là 1, 2, 3, 4, 5. Người thứ 1 vào trước, người thứ 2 vào sau người thứ 1 và cứ như thế

Khi đi ra, người thứ 1 (đi trước) sẽ là người ra trước, người thứ 2 sẽ đi ra thứ 2 và như thế

Các bạn để ý một số điểm đặc biệt như sau
Người vào trước (first) sẽ là người ra trước (first). Vì thế nó còn gọi là FIFO (First In First Out)
Đứa chạy đầu tiên sẽ đặt vào vị trí front (trước), cho tới đứa chạy cuối cùng sẽ đặt vào vị trí sau (rear)
Trong lập trình, người ta sử dụng nó để giải quyết một số bài toán đặc trưng
Trong Java, có hỗ trợ một lớp Queue dùng để thực hiện kiểu lưu trữ và lấy thông tin như thế này
Queue trong Java
Queue trong Java nằm trong bộ Collection, là một interface. Để sử dụng, ta cần phải thông qua lớp của nó. Có 2 lớp implement interface này, đó là LinkedList và PriorityQueue. Trong phần này mình sẽ dùng LinkedList
Khai báo
Queue<Type> obj = new LinkedList<Type>();
Cách tương tác với các phần tử như sau:

add(): đưa phần tử vào trong queue, theo kiểu của queue – đưa vào cuối danh sách queue
remove(): đưa phần tử ra ngoài queue, theo kiểu của queue – trả về một giá trị tại vị trí nằm ở đầu danh sách queue, và xóa phần tử đó trong danh sách queue
peek(): xem (trả về) phần tử đầu tiên trong danh sách queue
          *Hàm peek() không xóa phần tử đầu tiên như remove()
Mình nghĩ ba hàm này cũng đủ xài rồi, các bạn thử thực hành trên eclipse để hiểu hơn (mình sẽ không ví dụ nữa). Một số hàm khác các bạn có thể đọc tham khảo, sợ viết nhiều quá đọc vào thấy hoang mang.
Nội dung bài viết thuộc về Lê Công Diễn.

Người viết: Lê Công Diễn
Mang đi nhớ ghi nguồn




Nhận xét

Bài đăng phổ biến từ blog này

Deploy project Springboot MIỄN PHÍ sử dụng Render

Ứng dụng Mã hóa bất đối xứng (Asymmetric cryptography) vào Chữ ký số (Digital Signature)

API và HTTP - Một số khái niệm cơ bản cần biết về Web (Phần 2)