Fetch your java.util.List’s next element and restart from the first element automatically, when no more elements left available.
Code
package util;
import java.util.Iterator;
import java.util.List;
import java.util.stream.Collectors;
public class NextValCyclicFetcher<T> {
  private List<T> list;
  private Iterator<T> iterator;
  public NextValCyclicFetcher(List<T> list) {
    if (null == list) {
      throw new IllegalArgumentException("null");
    }
    if (list.isEmpty()) {
      throw new IllegalArgumentException("empty");
    }
    this.list = list.stream().collect(Collectors.toList());
    this.iterator = this.list.iterator();
  }
  public T next() {
    if (iterator.hasNext()) {
      return iterator.next();
    }
    iterator = list.iterator();
    return next();
  }
}
It uses standard Java 8 imports.
The passed in List is copied so that if the original list is modified outside the cyclic fetcher, the cyclic fetcher will continue working as expected.
Example
public void exampleMethod() {
  List<String> list = Arrays.asList("first", "second", "third");
  NextValCyclicFetcher<String> listCyclicFetcher = new NextValCyclicFetcher<>(list);
  // more code
  while (condition) {    
    String string = listCyclicFetcher.next();
    System.out.println(string);
  }
}
Output
first
second
third
first
second
third
first
...
(Until condition is not satisfied anymore)