С Гуава , вы можете просто сделать
for (E forwardElement : list) {
...
}
for (E backwardElement : Lists.reverse(list)) {
// Lists.reverse returns a view, so it's free
...
}
или, если вы хотите сделать их оба в одном цикле,
for (E element : Iterables.concat(list, Lists.reverse(list))) {
...
}
(Внутренне это просто оборачивает ваш ListIterator
и меняет направление, но использовать его вот так просто.)