Я понимаю, что в Java a Collection<E>
не следует изменять во время итерации через него, например, удаление или добавление элементов. Но как насчет изменения элементов в Списке? Например, что, если мы имеем
List<String> letters = new ArrayList<String>();
letters.add("A");
letters.add("B");
letters.add("C");
int i = 0;
for (String letter : letters) {
letters.set(i, "D");
i++;
}
Итак, я не говорю об изменении объекта, хранящегося в элементе; Я говорю об изменении того, что объект. Размер списка не изменяется, но объект в индексе изменяется, поэтому технически список изменяется. Мой босс утверждает, что этот код в порядке (и, похоже, он работает), но я все еще не думаю, что это правильно. Будет ли другой способ сделать это, возможно, используя метод set (E e) ListIterator, лучше?