我已經做了一個測驗應用程序,它使用int []數組來設置答案的位置。該數組必須填充數字0,1,2和3,但必須隨機放置(並且只出現一次)。我設法做的唯一方法是這樣的:用隨機數填充int []
public int[] castRanInt(){
int ran_int[] = new int[4];
Random random = new Random();
boolean state = true;
ran_int[0] = random.nextInt(4);
while (state) {
for (int r = 1; r < 4; r++) {
ran_int[r] = random.nextInt(4);
}
state = false;
for (int a = 0; a < 4; a++) {
for (int b = 0; b < 4; b++) {
if (a == b) {
continue;
}
if (ran_int[a] == ran_int[b]) {
state = true;
}
}
}
}
return ran_int;
}
唯一的問題是,這往往需要多達100次的循環,而只是爲了填充陣列。有沒有更簡單/更快的方法來做到這一點?
用'1; 2; 3; 4'填充數組,然後洗牌。你可以使用'Collections.shuffle'來洗牌集合,並且可能有一個等價的數組。 –