Apa yang Anda gambarkan, adalah situasi yang tepat untuk digunakan Queue
.
Karena Anda ingin add
elemen baru, dan remove
yang lama. Anda dapat menambahkan di akhir, dan menghapus dari awal. Itu tidak akan membuat banyak perbedaan.
Antrian memiliki metode add(e)
dan remove()
yang menambahkan pada akhirnya elemen baru, dan menghapus dari awal elemen lama, masing-masing.
Queue<Integer> queue = new LinkedList<Integer>();
queue.add(5);
queue.add(6);
queue.remove(); // Remove 5
Jadi, setiap kali Anda menambahkan elemen ke queue
Anda dapat mencadangkannya dengan remove
pemanggilan metode.
PEMBARUAN : -
Dan jika Anda ingin memperbaiki ukuranQueue
, maka Anda dapat melihat: -ApacheCommons#CircularFifoBuffer
Dari documentation
: -
CircularFifoBuffer adalah buffer keluar masuk pertama dengan ukuran tetap yang menggantikan elemen tertua jika penuh.
Buffer queue = new CircularFifoBuffer(2); // Max size
queue.add(5);
queue.add(6);
queue.add(7); // Automatically removes the first element `5`
Seperti yang Anda lihat, ketika ukuran maksimum tercapai, kemudian menambahkan elemen baru secara otomatis menghapus elemen pertama yang dimasukkan.
remove
danadd
?