Những gì bạn đang mô tả, là một tình huống thích hợp để sử dụng Queue
.
Vì bạn muốn add
yếu tố mới, và yếu tố remove
cũ. Bạn có thể thêm vào cuối và loại bỏ từ đầu. Điều đó sẽ không tạo ra nhiều sự khác biệt.
Hàng đợi có các phương thức add(e)
và remove()
bổ sung vào cuối phần tử mới và loại bỏ phần đầu tương ứng.
Queue<Integer> queue = new LinkedList<Integer>();
queue.add(5);
queue.add(6);
queue.remove(); // Remove 5
Vì vậy, mỗi khi bạn thêm một phần tử vào, queue
bạn có thể sao lưu nó bằng một remove
cuộc gọi phương thức.
CẬP NHẬT : -
Và nếu bạn muốn sửa kích thước củaQueue
, thì bạn có thể xem: -ApacheCommons#CircularFifoBuffer
Từ documentation
: -
ThongFifoBuffer là bộ đệm đầu tiên xuất hiện với kích thước cố định thay thế phần tử cũ nhất của nó nếu đầy đủ.
Buffer queue = new CircularFifoBuffer(2); // Max size
queue.add(5);
queue.add(6);
queue.add(7); // Automatically removes the first element `5`
Như bạn có thể thấy, khi đạt đến kích thước tối đa, sau đó thêm phần tử mới sẽ tự động loại bỏ phần tử đầu tiên được chèn.
remove
vàadd
?