关于List中的remove()与Iterator

在软构课程中老师提到一个例子:用iterator遍历list的时候,如果想要删除,那么必须用iterator的remove方法来进行删除,而不可以直接在list中删除。关于这一点老师并没有赘述。
在LAB2中,这一点得到了复现:在对一个list中的元素进行遍历时,发现用foreach遍历,如果要进行删除,也会产生类似的错误。
查阅后发现有如下三点总结

  1. foreach遍历,iterator遍历都不能在遍历的过程中使用list.remove或list.add操作,会报并发修改异常。

  2. iterator遍历过程中如果需要删除可以使用iterator提供的remove()方法。

  3. 遍历根据元素索引删除是可行的
    在日后的编程中需要时刻注意这三点

你可能感兴趣的:(关于List中的remove()与Iterator)