У меня есть список элементов, содержащих несколько конкретных специальных элементов, и мне нужно найти соседей этих элементов в постоянное время. Это звучит просто, если использовать двусвязный список: просто храните ссылки на узлы, содержащие эти конкретные элементы, и проверяйте их предыдущий и следующий узлы. (Я также предпочитаю использовать связанный список, поскольку я постоянно удаляю и добавляю элементы. Список большой, а производительность особенно важна.)
Однако, похоже, что Java LinkedList не позволяет мне хранить узел, содержащий элемент. Это правильно? Если так, есть ли чистый способ сделать то, что мне нужно сделать? Это не должно быть сложно, но я не нашел решения.
Это должно работать с постоянно меняющимся списком, и я предпочитаю не обновлять что-либо во время изменений (например, если бы я использовал массив, мне пришлось бы постоянно обновлять их индексы всякий раз, когда они перемещались в массиве). Кроме того, в будущем мне может понадобиться пройти по списку, начиная с этого специального узла, не теряя времени на поиск этого узла (что также было бы легко в низкоуровневой реализации связанного списка), поэтому я был бы еще более благодарен за решение, которое также решило это.
Редактировать: Спасибо за ответы. Я надеялся на решение, которое не включало бы реализацию моей собственной версии связанного списка. Есть ли один?