Вы можете использовать Class CircularFifoBuffer
из apache
для создания буфера фиксированного размера, который заменяет его самый старый элемент, если он заполнен.
Конструктор будет выглядеть так:
Buffer circularQueue = new CircularFifoBuffer(size);
Из официальной документации:
открытый класс CircularFifoBuffer extends BoundedFifoBuffer
CircularFifoBuffer - это буфер "первым пришел - первым вышел" с фиксированным размером, который заменяет его самый старый элемент, если он заполнен.Порядок удаления CircularFifoBuffer основан на порядке вставки;элементы удаляются в том же порядке, в котором они были добавлены.Порядок итераций совпадает с порядком удаления.
Все операции add (Object), BoundedFifoBuffer.remove () и BoundedFifoBuffer.get () выполняются в постоянное время.Все остальные операции выполняются за линейное время или хуже.
Обратите внимание, что эта реализация не синхронизирована.Для обеспечения синхронизированного доступа к вашему CircularFifoBuffer можно использовать следующее:
Проверьте документацию: открытый класс CircularFifoBuffer