使用iterator遍历,一旦报错就remove元素,try中前后两个方法都使用了iterator.next()方法,前一个报错了,并没有直接跳过后一个方法,反而执行了
时间: 2024-03-29 15:38:19 浏览: 29
使用Iterator接口遍历集合元素
在使用 Iterator 遍历集合时,如果需要在迭代过程中删除元素,应该使用 Iterator 的 remove() 方法来删除元素,而不是直接调用集合的 remove() 方法。因为直接调用集合的 remove() 方法可能会导致 ConcurrentModificationException 异常的抛出。
针对你的问题,我猜测可能是因为在前一个方法报错后,没有及时调用 Iterator 的 remove() 方法来删除元素,导致后一个方法仍然使用已经失效的元素,进而抛出异常。你可以尝试在前一个方法报错后立即调用 Iterator 的 remove() 方法来删除元素,或者使用 for-each 循环代替 Iterator 进行集合遍历,这样可以避免使用 Iterator 时出现的一些问题。
阅读全文