如何制作永不结束的迭代器?

sol*_*oth 8 java iterator infinite

我只是想知道无限期地迭代一个集合的最简单方法是什么,即当它到达结束时它next();调用第一个对象.我假设这不是Java中已经预定义的函数,所以只是寻找在Java中实现它的最简单方法.

Jon*_*eet 36

卓越的Google Collections库中有一种方法可以做到这一点:

Set<String> names = ...;
Iterable<String> infinite = Iterables.cycle(names);
Run Code Online (Sandbox Code Playgroud)

(我不能足够强烈地推荐Google Collections库.它非常努力.我在为Google工作时有偏见,但我认为几乎所有编写Java的Googler都会告诉你这些集合有多大用处.)


Ale*_*exC 5

Iterator it = mylist.iterator();
while (it.hasNext())
{
  MyType t = (MyType)it.next();

  // do something

  if (!it.hasNext())
    it = mylist.iterator();
}
Run Code Online (Sandbox Code Playgroud)