package org.jgap.util; import org.jgap.*; import java.util.*; public class UniqueRandomGenerator { private int m_upper; private List m_resultSet; private RandomGenerator m_generator; public UniqueRandomGenerator(int a_upperBoundary, RandomGenerator a_generator) { m_upper = a_upperBoundary; m_resultSet = new Vector(); m_generator = a_generator; for (int i = 0; i < m_upper; i++) { m_resultSet.add(new Integer(i)); } } public int nextInt() throws IllegalStateException { int size = m_resultSet.size(); int index; if (size < 1) { throw new IllegalStateException("No more numbers left"); } else if (size == 1) { index = 0; } else { index = m_generator.nextInt(size); } Integer result = (Integer) m_resultSet.get(index); m_resultSet.remove(index); return result.intValue(); } }