与C ++一样,iterator.remove()不是100%安全或健壮的 java使用iterator.remove()保证100%的健壮性吗?
答案 0 :(得分:3)
取消亚特的评论(谁真的值得信任)
http://java.sun.com/javase/6/docs/api/java/util/Iterator.html#remove%28%29
表示:
void
删除()从底层集合中移除迭代器返回的最后一个元素(可选操作)。每次调用next时,只能调用一次此方法。一个人的行为 如果在迭代正在进行中以除调用此方法之外的任何方式修改基础集合,则不指定迭代器。
所以......是的,有条件可能会发生意外/不安全行为。
答案 1 :(得分:2)
是的,它很强大,因为它是在界面上定义的,因此必须在任何实现它的集合上工作。但是,有几个警告来自the Javadoc:
remove()
next()
remove()