Açıkladığınız şey, kullanmak için uygun bir durumdur Queue.
Çünkü addyeni eleman ve removeeskisini istiyorum . Sonuna ekleyebilir ve baştan kaldırabilirsiniz. Bu çok fazla fark yaratmayacak.
Kuyruğun yöntemleri vardır add(e)ve remove()bunlar sonunda yeni öğeyi ekler ve sırasıyla eski öğenin başından kaldırılır.
Queue<Integer> queue = new LinkedList<Integer>();
queue.add(5);
queue.add(6);
queue.remove(); // Remove 5
Böylece, her öğe eklediğinizde, queueonu bir removeyöntem çağrısı ile yedekleyebilirsiniz .
GÜNCELLEME : -
Ve boyutunu düzeltmekQueue istiyorsanız , o zaman bir göz atabilirsiniz: -ApacheCommons#CircularFifoBuffer
Gönderen documentation: -
CircularFifoBuffer, doluysa en eski öğesini değiştiren sabit boyutlu ilk giren ilk çıkar arabelleğidir.
Buffer queue = new CircularFifoBuffer(2); // Max size
queue.add(5);
queue.add(6);
queue.add(7); // Automatically removes the first element `5`
Gördüğünüz gibi, maksimum boyuta ulaşıldığında, yeni öğe eklemek, eklenen ilk öğeyi otomatik olarak kaldırır.
removeveadd?