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
Đăng nhận xét