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