Ограниченный, автоматический сброс, неблокирующий, одновременный сбор
Я ищу коллекцию, которая:
этоDeque
/List
- т.е. поддерживает вставку элементов "сверху" (новейшие элементы идут сверху) -deque.addFirst(..)
/ list.add(0, ..)
, Это может бытьQueue
, но порядок итераций должен быть обратным - то есть последние добавленные элементы должны стоять на первом месте.ограничен - то есть имеет ограничение в 20 пунктовавтоматически удаляет самые старые элементы (те, что «внизу», добавляются первыми), когда емкость заполненанеблокирование - если очередь пуста, поиск не должен блокироваться. Это также не должно блокировать / возвращать false / null / throw исключение, если очередь заполнена.одновременно - несколько потоков должны иметь возможность работать с нимя могу взятьLinkedBlockingDeque
и завернуть его в мою коллекцию, которая наadd
Операция проверяет размер и отбрасывает последний элемент (ы). Есть ли лучший вариант?