Android - 生成非重复的随机数

时间:2015-10-24 14:08:12

标签: java android random

我正在进行测验,但我希望所有问题都是随机的,但不要互相重复。我有一个问题ID,我需要在每个问题后生成一个随机整数。我有6个问题。 Id是1-7。

我检查了不同的主题,但他们还没有解决我的问题。

这是我现在的代码,但它重复:

Random rnd = new Random();
    Integer n = rnd.nextInt(6) + 1;

    qid=n;

2 个答案:

答案 0 :(得分:2)

将您的问题放入数组并将数组洗一次。以洗牌顺序从阵列中挑选问题。这保证在所有问题都用尽之前不会重复。使用Collections.shuffle(myArray);进行改组。

答案 1 :(得分:0)

尝试这种方法希望它可以帮到你。此方法适用于8号

private void generateRandomNumber() {
    int rnd; Random rand=new Random();
    int[] randNo = new int[8];
    ArrayList numbers = new ArrayList();
    for (int k=0 ; k < 8; k++) {
        rnd = rand.nextInt(8) + 1;
        if(k==0) {
            randNo[0] = rnd;
            numbers.add(randNo[0]);
        } else { 
            while(numbers.contains(new Integer(rnd))) {
                rnd = rand.nextInt(8) + 1;
            }
            randNo[k] = rnd;
            numbers.add(randNo[k]);
        }
    }
}