Мне нужен тип хранилища, в котором я могу установить максимальное количество элементов, и всякий раз, когда я добавляю что-то в хвост, голова усекается при необходимости с низкими накладными расходами. Я могу, конечно, сделать это вручную, если придется. Пример
max = 1000
заполнить его целыми числами 1-1000: [1,2,..., 999,1000]
добавить числа 1000 - 1500: [500, 512,...., 1499,1500]
Это должно быть как можно дешевле, так как в это время я буду запускать несколько потоков, один из которых сделает запись звука. Я не забочусь о том, чтобы удерживать элементы головы, когда они выскользнули, я бы хотел избавиться от них в массовой операции.
Я проверил типы очереди в SDK, не уверен, что может удовлетворить эти потребности, возможно, связанную очередь.
Спасибо за любую помощь
Использовать кольцевой буфер, также известный как круговая очередь; они могут быть реализованы как массивы, поэтому они особенно дешевы. См. этот вопрос для реализации на Java.