LinkedList
- это структура данных, в которой каждый элемент связан со ссылкой на следующий элемент.
Таким образом, теоретически эта структура данных предназначена для свободной итерации по списку, в зависимости от того, чтонаправление, при выполнении каких-либо операций (за исключением, может быть, удаления элемента, в котором вы находитесь).
Однако в приложении это не так.Возврат Итератора из LinkedList подчиняется общим правилам Iterator
(т.е. без изменения во время итерации) и даже создает ListIterator
, улучшенный Iterator
, который позволяет изменять следующий / предыдущий элемент итератора, идавайте динамически двигаться вперед / назад, но все еще имеет серьезные ограничения:
Вы не можете удалять элементы из начала списка, если вы в данный момент там не находитесь, и вы также не можете добавлять элементы в конец списка.список, если вы в настоящее время там.
Итак, есть ли способ свободно перебирать LinkedList
при выполнении каких-либо изменений в списке?А если нет, то почему нет?Разве это не должно быть одной из основных целей этой структуры данных для ее реализации?