Поведение List.iterator () не определено или не соответствует различным реализациям List.
Для ArrayList, LinkedList, вы можете получить исключение ConcurrentModificationException, если список изменяется при его итерации по нему.(Это не гарантируется). Чтобы избежать этой проблемы, нужно использовать synchronizedList () и заблокировать список во время итерации по нему.
Для Vector коллекция синхронизируется, но итератор не является потокобезопасным.
Для CopyOnWriteArrayList вы получаете моментальный снимок элементов в списке во время вызова iterator (). Этот итератор является поточно-ориентированным, и вам не нужно использовать какую-либо блокировку.Примечание: содержимое элементов может меняться.