生成2个数字之间的唯一随机数

时间:2011-09-19 15:50:34

标签: android

出于我的特定目的,我需要生成1到120之间的整数(我没有问题)。

一旦生成了这个数字,我需要从池中取出它,这样就无法再生成它。

继续此过程,直到所有数字都用完为止,此时,游泳池会重新填满,我们会重新开始。

我怎么能这样做?

3 个答案:

答案 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)

我相信你需要的只是shuffle数组或集合。例如,您可以参考此question