Я реализую скользящее окно над потоком событий на Java. Итак, я хочу структуру данных, которая позволяет мне делать следующее:
добавлять в конец структуры данных при возникновении новых событий;
удалять из начала структуры данных при обработке старых событий;
получить стандартный произвольный доступ (
size()
,get(i)
) к элементам структуры данных; в общем, типичный List "прочитан" операции;эффективен для всех вышеперечисленных операций;
неограничен.
Другой доступ не требуется. И никакой потокобезопасности не требуется.
В настоящее время я делаю это с ArrayList, чтобы привести все в порядок. Но я хочу что-то более эффективное; метод remove(0)
(2. выше) неэффективен с ArrayList
.
Номера 1. и 2. являются стандартными Queue операции в стиле. Однако реализации Queue
в JDK (например, ArrayDeque) не допускайте get(i)
в 3.
Итак, мне интересно, есть ли какие-либо библиотеки, которые имеют такую реализацию и подходят для коммерческого использования.
Если нет, я думаю, я прибегну к написанию своего собственного...