Вы должны использовать цикл foreach, если можете - это наиболее эффективно:
List<Item> myList = ...;
for (Item item : myList) {
...
}
Если вам нужно изменить список внутри цикла или просмотреть несколько коллекций в одном цикле, используйте итератор:
List<Item> myList = ...;
Iterator<Item> it = myList.iterator();
while (it.hasNext()) {
Item item = it.next();
...
}
И если вам нужно перейти назад или что-то еще, связанное со связанными списками, используйте listIterator
:
ListIterator<Item> it = myList.listIterator();
...