Apa yang Anda gambarkan, adalah situasi yang tepat untuk digunakan Queue.
Karena Anda ingin addelemen baru, dan removeyang 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 queueAnda dapat mencadangkannya dengan removepemanggilan 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.
removedanadd?