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();
  }
}

 

Ads help maintain this website.