Может кто-нибудь сказать, пожалуйста, есть ли встроенный пакет Java для круговой очереди? - PullRequest
0 голосов
/ 11 февраля 2019

Я хочу знать, есть ли какой-нибудь встроенный Java-пакет для циклической очереди, и если он существует, то какой конструктор его использует?

1 Ответ

0 голосов
/ 11 февраля 2019

Вы можете использовать Class CircularFifoBuffer из apache для создания буфера фиксированного размера, который заменяет его самый старый элемент, если он заполнен.

Конструктор будет выглядеть так:

Buffer circularQueue = new CircularFifoBuffer(size);

Из официальной документации:

открытый класс CircularFifoBuffer extends BoundedFifoBuffer

CircularFifoBuffer - это буфер "первым пришел - первым вышел" с фиксированным размером, который заменяет его самый старый элемент, если он заполнен.Порядок удаления CircularFifoBuffer основан на порядке вставки;элементы удаляются в том же порядке, в котором они были добавлены.Порядок итераций совпадает с порядком удаления.

Все операции add (Object), BoundedFifoBuffer.remove () и BoundedFifoBuffer.get () выполняются в постоянное время.Все остальные операции выполняются за линейное время или хуже.

Обратите внимание, что эта реализация не синхронизирована.Для обеспечения синхронизированного доступа к вашему CircularFifoBuffer можно использовать следующее:

Проверьте документацию: открытый класс CircularFifoBuffer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...