我使用Set#iterator().next();
所有的本身,我想知道,如果:从一个集合的迭代器中获取第一个项目会返回一个随机值吗?
A)请问导致内存泄漏,或者至少任何一种可以避免的开销,
和
B)无论它是否返回项目都是随机项目,如果我多次使用此方法,它会每次都提供一个不同的项目?
我使用Set#iterator().next();
所有的本身,我想知道,如果:从一个集合的迭代器中获取第一个项目会返回一个随机值吗?
A)请问导致内存泄漏,或者至少任何一种可以避免的开销,
和
B)无论它是否返回项目都是随机项目,如果我多次使用此方法,它会每次都提供一个不同的项目?
返回迭代的下一个元素。
这意味着它将按照它们存储在Set
中的顺序返回物品。并且关于不同的物品,是,它会一直返回下一个(不同)物品(直到物品剩余的物品更多),并且一旦它耗尽了所有物品就会终止(通过投掷NoSuchElementException
)。
Iterator<E> iterator()
返回在此组中的元素的迭代器。 元素以特定顺序返回(除非此集合是某个提供担保的类的实例)。
http://docs.oracle.com/javase/7/docs/api/java/util/Set.html#iterator()
如果您需要在每次通过Set迭代时间来在同一顺序的元素,尝试保证为了这些特定的实现方式之一:
前两个基于它们插入在所述一组(插入顺序)的数量级上的元素实现SortedSet接口。