package de.dhbw.tinf12.pattern.iterator; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.NoSuchElementException; import java.util.Random; public class RandomOrderArrayIterator<E> implements Iterator<E> { private final List<E> aggregat; public RandomOrderArrayIterator(E[] aggregat) { super(); final List<E> remaining = new LinkedList<E>(); Collections.addAll(remaining, aggregat); this.aggregat = remaining; } @Override public boolean hasNext() { return (!this.aggregat.isEmpty()); } @Override public E next() { if (hasNext()) { final int index = new Random().nextInt(this.aggregat.size()); return this.aggregat.remove(index); } throw new NoSuchElementException(); } @Override public void remove() { throw new UnsupportedOperationException("fu** you"); } }