Лучшая реализация Java Queue?

Я работаю (на Java) над алгоритмом рекурсивной обработки изображений, который рекурсивно перемещает пиксели изображения наружу от центральной точки.

К сожалению, это вызывает переполнение стека. Поэтому я решил переключиться на алгоритм на основе очереди.

Теперь все это прекрасно и денди, но учитывая тот факт, что его очередь будет анализировать ТЫСЯЧИ пикселей за очень короткий промежуток времени, постоянно выталкивая и нажимая, БЕЗ поддержания предсказуемого состояния (оно может быть где-то между длина 100 и 20000), реализация очереди должна иметь возможности быстрого извлечения и проталкивания.

Связный список кажется привлекательным из-за его способности помещать элементы в себя без перестановки чего-либо еще в списке, но для того, чтобы он был достаточно быстрым, ему потребуется легкий доступ как к его началу, так и к его хвосту (или предпоследний узел, если он не был двусвязным). К сожалению, я не могу найти никакой информации, связанной с базовой реализацией связанных списков в Java, поэтому трудно сказать, действительно ли связный список — это то, что нужно...

Это подводит меня к моему вопросу. Что было бы лучшей реализацией интерфейса Queue в Java для того, что я собираюсь сделать? (Я не хочу редактировать или даже получать доступ к чему-либо, кроме начала и конца очереди — я не хочу делать какие-либо перестановки или что-то еще. С другой стороны, я ДЕЙСТВИТЕЛЬНО намерен много и извлечение, и размер очереди будет довольно сильно меняться, поэтому предварительное выделение будет неэффективным)

46
задан Pika Chu 25 June 2019 в 19:48
поделиться