наиболее эффективный объект хранения данных для постановки в очередь максимального количества элементов

1

Мне нужен тип хранилища, в котором я могу установить максимальное количество элементов, и всякий раз, когда я добавляю что-то в хвост, голова усекается при необходимости с низкими накладными расходами. Я могу, конечно, сделать это вручную, если придется. Пример

max = 1000

заполнить его целыми числами 1-1000: [1,2,..., 999,1000]

добавить числа 1000 - 1500: [500, 512,...., 1499,1500]

Это должно быть как можно дешевле, так как в это время я буду запускать несколько потоков, один из которых сделает запись звука. Я не забочусь о том, чтобы удерживать элементы головы, когда они выскользнули, я бы хотел избавиться от них в массовой операции.

Я проверил типы очереди в SDK, не уверен, что может удовлетворить эти потребности, возможно, связанную очередь.

Спасибо за любую помощь

Теги:
algorithm
data-structures

1 ответ

1
Лучший ответ

Использовать кольцевой буфер, также известный как круговая очередь; они могут быть реализованы как массивы, поэтому они особенно дешевы. См. этот вопрос для реализации на Java.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню