繁体   English   中英

两个java.util.Iterators到同一个集合:他们必须以相同的顺序返回元素吗?

[英]Two java.util.Iterators to the same collection: do they have to return elements in the same order?

这更像是一个理论问题。 如果我有一个没有排序的任意集合c并且我通过调用c.iterator()两次获得两个java.util.Iterator ,那么两个迭代器都必须以相同的顺序返回c的元素吗?

我的意思是,在实践中他们可能永远都会,但他们是否被迫通过合同这样做?

谢谢,Jan

不,他们不是。

“对于返回元素的顺序没有任何保证(除非这个集合是某个提供保证的类的实例)。”

请参阅Collection#iterator api合约

这包括从一个迭代器到下一个迭代器(因为它没有说明要求它)。

还要考虑在获取这两个迭代器之间的底层集合中可能发生了某些变化! 添加或删除的东西。

迭代器的实现由特定的Collection类提供。 List的Iterator将给出有序元素,而Set则不给出

因为大多数数据结构在默认情况下不是排序的,所以不确定它们将以相同的顺序迭代。

如果您想要相同的订单,则必须先对集合进行排序。

暂无
暂无

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

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