我正在进行测验,但我希望所有问题都是随机的,但不要互相重复。我有一个问题ID,我需要在每个问题后生成一个随机整数。我有6个问题。 Id是1-7。
我检查了不同的主题,但他们还没有解决我的问题。
这是我现在的代码,但它重复:
Random rnd = new Random();
Integer n = rnd.nextInt(6) + 1;
qid=n;
答案 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]);
}
}
}