
ArrayList сохраняет порядок добавления элементов. Итератор (Iterator, ListIterator) и цикл вида foreach возвращают элементы в том порядке, в котором они были добавлены в ArrayList.
ArrayList<String> arr = new ArrayList<>();
arr.add("one");
arr.add("three");
arr.add("two");
System.out.println(arr); // [one, three, two]
Итератор (Iterator, ListIterator) даёт возможность удалить итерируемый элемент ArrayList. Однако, в цикле вида foreach удалить элемент невозможно.
Iterator iter = arr.iterator();
while(iter.hasNext()) {
iter.next();
iter.remove();
}
System.out.println(arr); // []