package de.dhbw.tinf12b3.pattern.iterator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
public class RandomIterator<TYP> implements Iterator<TYP> {
private final List<TYP> daten;
private int position;
public RandomIterator(List<TYP> daten) {
super();
final List<TYP> kopie = new ArrayList<>(daten);
Collections.shuffle(kopie);
this.daten = kopie;
this.position = 0;
}
@Override
public boolean hasNext() {
return (this.position < this.daten.size());
}
@Override
public TYP next() {
final TYP result = this.daten.get(this.position);
this.position++;
return result;
}
@Override
public void remove() {
throw new UnsupportedOperationException("fuck off");
}
}