KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jgap > util > UniqueRandomGenerator


1 package org.jgap.util;
2
3 import org.jgap.*;
4 import java.util.*;
5
6 public class UniqueRandomGenerator {
7   private int m_upper;
8
9   private List m_resultSet;
10
11   private RandomGenerator m_generator;
12
13   public UniqueRandomGenerator(int a_upperBoundary, RandomGenerator a_generator) {
14     m_upper = a_upperBoundary;
15     m_resultSet = new Vector();
16     m_generator = a_generator;
17     for (int i = 0; i < m_upper; i++) {
18       m_resultSet.add(new Integer JavaDoc(i));
19     }
20   }
21
22   public int nextInt()
23       throws IllegalStateException JavaDoc {
24     int size = m_resultSet.size();
25     if (size < 1) {
26       throw new IllegalStateException JavaDoc("No more numbers left");
27     }
28     int index = m_generator.nextInt(size);
29     Integer JavaDoc result = (Integer JavaDoc) m_resultSet.get(index);
30     m_resultSet.remove(index);
31     return result.intValue();
32   }
33 }
34
Popular Tags