繁体   English   中英

在java的所有情况下iterator.remove()是否都是健全的?

[英]Is iterator.remove() is ROBUST in all cases in java?

与在C ++中一样,iterator.remove()不是100%安全或健壮,java是否保证iterator.remove()具有100%的健壮性?

关于亚马的评论(谁真的值得信任)

http://java.sun.com/javase/6/docs/api/java/util/Iterator.html#remove%28%29

说:

void remove()

从底层集合中移除迭代器返回的最后一个元素(可选操作)。 每次调用next时,只能调用一次此方法。 如果在迭代正在进行中以除调用此方法之外的任何方式修改基础集合,则未指定迭代器的行为。

所以......是的,有条件可能会发生意外/不安全的行为。

是的,它很强大,因为它是在界面上定义的,因此必须在任何实现它的集合上工作。 但是,有一些警告来自Javadoc

  • 这是一个可选操作 - 并非所有提供Iterator的东西都需要实现remove()
  • 它只能在每次调用next()调用next()
  • 如果底层集合是通过调用比其他枚举过程中修改了它的不可靠remove()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM