如果您创建自己的Iterable
容器类并在其元素上检索java.util.Iterator
,是否有任何编码模式可以根据该模式进一步添加元素容器中的内容应该不能可以从迭代器
访问吗?我在想“不可能,绝对不是,事实上 Iterator
应该能够循环遍历所有元素,无论添加什么。”
或者如果在进行新添加后调用 next()
,快速失败的 Iterator
是否应该抛出异常?
自从我用 Java 编码以来已经有一段时间了,但这里有些东西很臭。
最佳答案
Is it perhaps the case that a fail-fast Iterator should throw an Exception if
next()
is called after a new addition is made?
正确。我相信如果您尝试使用任何 Java 内置的 Iterable
来做到这一点您将得到 ConcurrentModificationException
整个Javadoc for that exception关于这一点值得一读。非常简洁。重点不是引用整个事情,而是突出的一点是,不会快速失败的迭代器“[风险]在未来不确定的时间出现任意的、不确定的行为。”
关于java - 在将元素添加到集合之前声明迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43002688/