Исходя из того что щас я услышал я бы попробовал сделать вот так:
1) Использовать LinkedList
2) Мне приходит колличество элементов которое надо добавить, я кладу колличество в переменную и запонимаю сколько элементов я щас добавлю
3) Дальше итерируюсь и доаваляю в конец
4) Потом второй цикл берет переменую из пункта 2 и делает столько итерация и дропает каждый раз первый элемент
Сделал бы это и посмотрел производительность ок мне или нет, если нет сел бы думать дальше