Думаю, тебе бы гораздо лучше привыкнуть к этому. Источник в верхнем левом углу с большинством основанных на пикселях видео / экранных API.
В отличной библиотеке Google Collections есть метод, который делает это:
Set<String> names = ...;
Iterable<String> infinite = Iterables.cycle(names);
(Я не могу рекомендовать библиотеку Google Collections достаточно сильно. Она очень крутая. Я пристрастен, поскольку работаю в Google, но думаю, что почти каждый гуглер, пишущий на Java, скажет вам, насколько полезны коллекции.)
Это то, о чем я могу думать ...
iterator = set.getIterator
//other code
if (iterator.hasNext())
//do code here
else
iterator = set.getIterator();
Если вы создаете итератор, в следующем методе вы можете иметь условие if, которое проверяет если в списке есть еще один объект. Если есть, то вы возвращаете этот объект, если его нет, вы возвращаетесь в начало списка и возвращаете этот объект.
Iterator it = mylist.iterator();
while (it.hasNext())
{
MyType t = (MyType)it.next();
// do something
if (!it.hasNext())
it = mylist.iterator();
}
Думаю, то, что вам нужно, никогда не поможет. Вы можете делать что угодно с помощью своего итератора это легко, но вы должны быть осторожны с любыми новыми вещами, которые вы добавляете. Они не используются в этом стиле, но это то, что вам нужно:
if (! It.hasNext ()) { while (It.hasPrevious ()) { It = It.Previous (); } } else { It = It. Next (); }
Этот способ ничего не стоит, если вы действительно заинтересованы, вы должны вместо этого всегда делать следующий указатель с последнего на первый при нажатии нового списка.