我理解在Java中,Collection<E>不应该在迭代它时修改它,例如删除或添加元素.但是如何更改List中的元素呢?例如,如果有的话
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++;
}
Run Code Online (Sandbox Code Playgroud)
所以,我不是在谈论修改存储在元素中的对象; 我在谈论改变对象是什么.List的大小没有被改变,但索引处的对象正在改变,所以从技术上讲,List正在被修改.我的老板声称这段代码很好(而且看起来确实有效),但我仍然认为它不正确.使用ListIterator的set(E e)方法的另一种方法是更好吗?