Ce que vous décrivez, est une situation appropriée pour utiliser Queue
.
Puisque vous voulez add
nouvel élément, et remove
l'ancien. Vous pouvez ajouter à la fin, et enlever du début. Cela ne fera pas une grande différence.
La file d'attente a des méthodes add(e)
y remove()
qui ajoute à la fin le nouvel élément, et retire du début l'ancien élément, respectivement.
Queue<Integer> queue = new LinkedList<Integer>();
queue.add(5);
queue.add(6);
queue.remove(); // Remove 5
Ainsi, à chaque fois que vous ajoutez un élément au queue
vous pouvez l'étayer avec un remove
l'appel de la méthode.
UPDATE : -
Et si vous voulez pour fixer la taille de la Queue
alors vous pouvez jeter un coup d'œil à : - ApacheCommons#CircularFifoBuffer
De la documentation
: -
CircularFifoBuffer est un tampon "premier entré, premier sorti" de taille fixe. qui remplace l'élément le plus ancien s'il est plein.
Buffer queue = new CircularFifoBuffer(2); // Max size
queue.add(5);
queue.add(6);
queue.add(7); // Automatically removes the first element `5`
Comme vous pouvez le constater, lorsque la taille maximale est atteinte, l'ajout d'un nouvel élément supprime automatiquement le premier élément inséré.