我們知道 Random random = new Random() 中可能會獲取到重復的隨機數
那么假設要獲取1到33之間的六個不重復隨機數應該怎么做呢?
首先定義一個數字數組存儲1到33
int[ ] redBall = new int[33[;
for(int i = 0;i<redBall.length;i++){
redBall[i] = i+1;
}
int[ ] redNumber = new int[6]; //存儲六個隨機數的實際數組
int index = -1; //通過隨機數字數組下標獲取隨機數
for(int i = 0;i<redNumber.length;i++){
index = random.nextInt(redBall.length-i); //每次獲取數字數組長度-i的隨機數,比如第一次循環為33第二次為32,
redNumber[i] = redBall[index]; //把數字數組隨機下標的值賦給實際數組
int temp = redBall[index]; //定義一個變量暫存下標為index時的值
redBall[index] = redBall[redBall.length-1-i]; //把下標為index的值與數組下標最后的值交換
redBall[redBall.length-1-i] = temp; //交換后,下次循環把數字數組最后的值去掉,從而實現不重復
}