Можно ли перебирать LL в Java с помощью ListIterator, периодически добавлять объекты в список и обрабатывать эти элементы в списке в порядке их добавления?
Допустим, я начинаю с LL с единственным объектом в нем. Я обрабатываю этот объект и решаю, что хочу добавить два дополнительных объекта, которые я хочу дополнительно обработать (например, FIFO). Интуитивно я начинаю процесс с
while (itr.hasNext()) {
itr.next();
...
itr.add();
}
Однако, похоже, это быстро рушится - add фактически добавляет элементы ДО индекса, в котором я сейчас нахожусь, а не после ( ListIterator javadoc ). Это означает, что когда я снова запускаю цикл while, он фактически не распознает, что материал был добавлен в LL, потому что ему действительно нужно идти НАЗАД (.hasPrevious()
вместо .hasNext()
), чтобы найти его. Но я не могу начать LL с .hasPrevious()
(я не думаю), потому что первый элемент в LL - это элемент .next()
.
Как правильно это сделать? Или я просто тупой?