如何创建永无止境的迭代器?

2022-09-04 05:12:18

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


答案 1

在优秀的Google Collections库中有一种方法可以做到这一点:

Set<String> names = ...;
Iterable<String> infinite = Iterables.cycle(names);

(我不能强烈推荐谷歌收藏库。它摇晃得很厉害。当我在谷歌工作时,我有偏见,但我认为几乎每个编写Java的谷歌员工都会告诉你这些集合是多么有用。


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

  // do something

  if (!it.hasNext())
    it = mylist.iterator();
}