Android Studio - 范围内的随机数,无重复项

时间:2017-09-09 14:25:26

标签: android random

我正在安装Android工作室的测验应用程序..

  • 我有两张表,这些是解决方案和问题..
  • 在我的游戏中,我想在此表格的范围内创建一个随机数字而不重复..
  • 这个随机数我更新了我的问题和答案..

我现在尝试使用此代码创建数字(带有重复项):

Random rand = new Random();

n = rand.nextInt(QuestionLibrary.mChoices.length) + 1;

这是我游戏的照片

enter image description here

1 个答案:

答案 0 :(得分:0)

如果你没有多少号码,你可以制作一个包含所有这些号码的集合,随机播放,然后从中逐一取出。 如果你有很多数字,那么更好的方法是创建一个空集合并添加随机函数返回的每个数字(如果它已经不存在)。如果已经存在数字,则获取另一个,依此类推。

请在此处阅读更多内容: https://stackoverflow.com/a/4040014/7270175

编辑:添加了代码片段,可以复制MAX个不同的随机数而无需重复。

private static int MAX = 1000;
private static boolean[] numbers;

public static void main(String[] args) {

    Random generator = new Random();
    numbers = new boolean[MAX + 1];

    for (int i = 0; i < MAX; i++) {
        System.out.println(getRandomWithoutDuplicates(generator));
    }
}

private static int getRandomWithoutDuplicates(Random generator) {
    int randomNum;
    do {
        randomNum = generator.nextInt(MAX);
    } while (numbers[randomNum]);
    numbers[randomNum] = true;
    return randomNum;
}