出于我的特定目的,我需要生成1到120之间的整数(我没有问题)。
一旦生成了这个数字,我需要从池中取出它,这样就无法再生成它。
继续此过程,直到所有数字都用完为止,此时,游泳池会重新填满,我们会重新开始。
我怎么能这样做?
答案 0 :(得分:4)
生成从1到120的整个数字列表。随机播放列表。取第一个元素(并删除它)
List<Integer> list = new LinkedList<Integer>();
for (int i = 1; i <= 120; i++) {
list.add(i)
}
Collections.shuffle(list);
...
int random = list.remove(0);
...
int otherRandom = list.remove(0);
如果您的数字用完,请检查list.empty()。如果为空,请再次创建列表并将其随机播放。
答案 1 :(得分:0)
显而易见的方法是填写一个列表,其中包含1到120之间的所有数字,然后当您需要一个随机数时,在1和列表计数之间生成一个,从该索引处的列表中取出项目,返回它到调用者然后从列表中删除它。列表为空后,重新填充并继续选择索引。
答案 2 :(得分:0)