对于Iterator中的remove()方法,若使用不当,则会报错,想要熟练使用remove()方法来删除元素需要深入理解该方法.
文章目录
- remove()方法
- 删除集合中的所有元素
- java.lang.IllegalStateException异常
- java.util.NoSuchElementException异常
- Java ConcurrentModificationException异常
remove()方法
该方法移除的是iterator.next()方法最后访问的元素.
删除集合中的所有元素
通过遍历集合元素,来依次删除该集合中的元素.当然也可以添加控制条件,来删除集合中想要删除的元素.
java.lang.IllegalStateException异常
( 如果 next方法尚未被调用,或者 remove方法在上次调用 next方法之后已经被调用 )
- 直接使用remove方法,而未调用next()方法.
- 当调用next()方法之后,使用了remove()方法,但是接着又使用remove(),则会出现该错误.
java.util.NoSuchElementException异常
如果迭代没有更多的元素
在集合遍历时,连续用两次iterator.next()方法会导致出现该错误.
Java ConcurrentModificationException异常
关于这个异常,请祥看这篇文章,该文章对于jdk源码进行了深入分析,写得很好.
Java ConcurrentModificationException异常原因和解决方法