Stack và Queue trong Java
Chào các bạn, bài viết hôm nay mình giới thiệu về 2 khái niệm Stack và Queue trong Java. Stack và Queue được implement như thế nào ? Có tác dụng gì ? Nào chúng ta cùng tìm hiểu nhé.
Stack là kiểu cấu trúc dữ liệu mà các phần từ thêm vào và lấy ra được thực hiện theo cơ chế Last – In – First – Out (LIFO), tức là phần tử nào được thêm vào đầu tiên thì sẽ được lấy ra sau cùng. Ví dụ một cái hộp để đựng đĩa, cái nào được đặt vào đầu tiên sẽ được lấy ra sau cùng. Ở đây cái hộp đựng đĩa được hiểu như là Stack.
Queue là kiểu cấu trúc dữ liệu mà các phần tử thêm vào là lấy ra được thực hiện theo cơ chế Fist – In – First – Out (FIFO), tức là phần tử nào thêm vào đầu tiên sẽ được lấy ra đầu tiên (có vẻ công bằng ^.^). Ví dụ mọi người xếp hàng đợi lên xe bus, người nào đứng trước sẽ được lên xe trước.
Ví dụ minh họa về Stack và Queu
Implement
Trong Java, Stack API gồm các method :
Có 2 method đáng chú ý là push() là thêm vào một phần tử và pop() là lấy ra phần tử mà được thêm vào gần nhất.
Queue API gồm các method :
Tương tự Stack, Queue có các method enqueue() là thêm một phần tử vào Queue và dequeue() là lấy ra phần tử mà được thêm vào trước nhất.
Ứng dụng
Việc sử dụng đúng Stack và Queue có thể sẽ giải quyết được các vấn đề phức tạp nếu sử dụng các collection khác. Bởi vì Stack và Queue được tạo ra để giải quyết các vấn đề đó.
Ví dụ Stack, chúng ta cần danh sách những sản phẩm vừa được mua gần nhất hoặc những khách hàng vừa mới truy cập. Sử dụng Stack để lưu trữ các thông tin trên, chỉ cần dùng method pop để lấy ra là chúng ta có được kết quả mong muốn.
Queue thì mình sử dụng trong ghi log (scribe log), dữ liệu log sẽ được thêm vào Queue và ghi lần lượt xuống đĩa, đảm bảo dữ liệu log theo thứ tự thời gian…
Kết
Vừa rồi là phần so sánh của mình về Stack và Queue. Hy vọng qua bài viết của mình các bạn có thể hiểu được cơ chế, sử dụng được Stack và Queue trong các dụng cũng như có thể implement Stack và Queue từ các kiểu dữ liệu khác.
Nhận xét
Đăng nhận xét