public class RoundRobin<T>{
private final List<T> list;
private final Iterator<T> iterator;
private int index;
public RoundRobin(List<T> list){
this.list=list;
this.index=0;
this.iterator=new Iterator<>(){
@Override
public boolean hasNext() {
return true;
}
@Override
public T next(){
T value=list.get(index);
index=(index+1)%list.size();
return value;
}
}
}
public T next() {
return iterator.next();
}
public void add(T item) {
list.add(item);
}
}