Я работаю (на Java) над алгоритмом рекурсивной обработки изображений, который рекурсивно пересекает пиксели изображения наружу от центральной точки.
К сожалению, это вызывает переполнение стека. Поэтому я решил переключиться на алгоритм на основе очереди.
Теперь все в порядке и dandy-, но учитывая тот факт, что его очередь будет анализировать ТЫСЯЧИ пикселей за очень короткий промежуток времени, при этом постоянно нажимая и нажимая, БЕЗ поддержания предсказуемого состояния (это может быть где-то между длиной 100 и 20000), реализация очереди должна иметь значительно быстрые способности "выталкивать и выдвигать".
Связанный список кажется привлекательным из-за его способности вставлять элементы в себя, не переставляя ничего в списке, но для того, чтобы он был достаточно быстрым, ему потребуется легкий доступ как к его голове, так и к его хвосту (или второму последний узел, если бы он не был дважды связан). К сожалению, я не могу найти какую-либо информацию, связанную с базовой реализацией связанных списков в Java, поэтому трудно сказать, действительно ли связанный список - это путь...
Это подводит меня к моему вопросу. Какова будет лучшая реализация интерфейса очереди в Java для того, что я намерен сделать? (Я не хочу редактировать или даже получать доступ к чему-либо, кроме заголовка и хвоста очереди - я не хочу делать какие-либо перестановки или что-то в этом роде. С другой стороны, я НАМЕРЕН делать много нажатий и выскочить, и очередь будет немного менять размер, поэтому предварительное распределение будет неэффективным)