二java.util.Iterators相同的集合:他们要以相同的顺序返回元素?(Two java.

2019-09-17 11:48发布

这更是一个理论问题。 如果我有一个乱收c未下令,我获得两个java.util.Iterator通过调用小号c.iterator()两次,一举两得迭代器必须返回c在同一顺序的元素呢?

我的意思是,在实践中,他们可能永远会,但他们被迫按合同约定这样做呢?

谢谢,扬

Answer 1:

不,他们不是。

“有关于它的要素返回(除非该集合是一些类,它提供了保证的实例)的顺序没有保证。”

见集合#迭代器API的合同 。

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

还要考虑的东西可以在底层集合在获得这两个迭代器之间已经改变了! 东西添加或删除。



Answer 2:

由特定集合类中提供的迭代器实现。 迭代器列表会给有序的元素,同时设置则不能



Answer 3:

由于大多数数据结构不是默认排序,现在还不能确定,他们将在同一顺序迭代。

如果你想相同的顺序,你必须先进行排序的集合。



文章来源: Two java.util.Iterators to the same collection: do they have to return elements in the same order?