/** * Wrap the base iterator, randomizing with a buffer of length sz. */ public RandomOrderIterator(int sz, Iterator<T> base) { super(base); buffer = new Object[sz]; top = 0; fill(); }
/** * Wrap the base iterator, randomizing with a buffer of length sz. */ public RandomOrderIterator(int sz, Iterator<T> base) { super(base); buffer = new Object[sz]; top = 0; fill(); }
@Override public T next() { int ix = rnd.nextInt(top); Object rslt = buffer[ix]; top--; buffer[ix] = buffer[top]; fill(); @SuppressWarnings("unchecked") T obj = (T)rslt; return obj ; }
@Override public T next() { int ix = rnd.nextInt(top); Object rslt = buffer[ix]; top--; buffer[ix] = buffer[top]; fill(); @SuppressWarnings("unchecked") T obj = (T)rslt; return obj ; }