0
我試圖根據用戶提供的一定範圍打印五個隨機數字,從不重複。下面發佈是我迄今爲止的代碼。首先,我不知道如何列出在ArrayList中找到的數字,或者即使我只是使用ArrayList而不是Array。有什麼想法嗎?如何獲得五個隨機數字的列表,以在Java中不重複地打印?
package h1p2;
import java.util.ArrayList;
public class test{
public void method (int min, int max){
//Declare and initialize arrays and index variables
ArrayList<Integer> rangeOne = new ArrayList<Integer>();
ArrayList<Integer> rangeMinMax = new ArrayList<Integer>();
int z = min;
int i = 0;
int q = 0;
//int rangeLength = rangeMinMax.length;
//need minimum/max differential of 50 or > to execute method
if (max - min < 50){
System.out.println("Please enter numbers with a differential of 50 or greater.");
}
//run if differential checks out
else{
while (z <= max && z >= min){
rangeMinMax.set(z, 1);
i++;
}
}
while (q < 5){
int randomNumber = (int)(rangeMinMax.size() * Math.random());
if (randomNumber == rangeOne.indexOf(0)|| randomNumber == rangeOne.indexOf(1) ||
randomNumber == rangeOne.indexOf(2) || randomNumber == rangeOne.indexOf(3) ||
randomNumber == rangeOne.indexOf(4) || randomNumber == rangeOne.indexOf(5)){
break;
}
else{
rangeOne.set(q, randomNumber);
}
q++;
}
System.out.println("The numbers are " +)
}
}
查看[SET](http://docs.oracle.com/javase/7/docs/api/java/util/Set.html)。我有一個答案[這裏](http://stackoverflow.com/questions/21324959/java-array-how-do-i-make-a-lottery-game/21325040#21325040),可以幫助你沿着你的方式。 – csmckelvey
謝謝@Takendarkk,我注意到你使用了「rand.nextInt(51)」。有沒有一種方法可以指定由構造函數指定的範圍而不是51? – GoldenEarring
那麼,如果他們輸入的範圍是100-200,你可以使用像'rand.nextInt(101)+ 100'這樣的nextInt()給出0和參數(獨佔)之間。 – csmckelvey