2016-11-19 25 views
2

我有一個數組中的4個按鈕。我能夠生成一個隨機數並將其設置爲所有這些按鈕,但這不是我打算做的。我真正想要做的是爲每個按鈕設置一個隨機數。例如:與其在所有四個按鈕內都有'17',我可以在每個按鈕中具有'18','15','10'和'11'。而不是手動爲每個按鈕分配一個隨機,我怎麼能這樣做到所有按鈕?如何爲所有按鈕設置不同的隨機數?

這裏是我的代碼:

Random rbselection = new Random(); 
final int rbselector = rbselection.nextInt(4); 
final Button[] selectrb = new Button[4]; 
selectrb[0] = rb1; 
selectrb[1] = rb2; 
selectrb[2] = rb3; 
selectrb[3] = rb4; 
Random randoms1 = new Random(); 
int setRandoms1 = randoms1.nextInt(10); 
for(int allrbA=0; allrbA<4; allrbA++) { 
    selectrb[allrbA].setText(""+setRandoms1); 
} 

而且,沒有人知道如何阻止被輸出的單數的兩倍這樣做的時候?例如,如果隨機數字集在10到20之間,其中一個是12,那麼任何人都知道如何在12之外的範圍內製作其他所有可能的數字?

回答

-1

嘗試的按鈕配置這個:

Random rnd = new Random(); 
    for(int allrbA=0; allrbA<4; allrbA++) 
     selectrb[allrbA].setText(String.valueOf(rnd.nextInt(20))); 
+1

這個保證是怎麼回事每個按鈕上有不同的隨機數字? –

2

如果我是你..

public static void main(String[] args) { 
    Set<Integer> uniqueRandomNumbers = new LinkedHashSet<>(); 

    while (uniqueRandomNumbers.size() != 4) { 
     Random random = new Random(); 
     uniqueRandomNumbers 
       .add(Math.abs(Integer.valueOf(random.nextInt()))); 
    } 
    System.out.println(uniqueRandomNumbers); 
} 

說明: 我生成隨機數。首先,我得到了隨機數字100,我將它添加到'Set'中,因爲Set始終保持唯一性,如果我再次得到100,那麼Set的大小不會增加。

Set的大小爲4時,循環中斷並且該集合包含唯一的隨機數。

遍歷Set來設置文本。

0

爲了獲得Java中的隨機數:

Random rand = new Random(); 

int n = rand.nextInt(50) + 1; 

其中1將是你在最小的範圍內,50將是你最大。使用此鏈接以供參考:Getting random numbers in Java

取決於您有多少個按鈕。你可以有

rbselection.nextInt(50) + 1; 

生成一個新的Int介於1到50範圍內,每次你調用它並將它添加到某個列表或Set中。

因此,像這樣:

Random rand = new Random(); 
int n = rand.nextInt(50) + 1; 

ArrayList<Integer> ar = new ArrayList<Integer>(); 
int i = 0; 

while (i < 4) 
{  
    int temp = rbselection.nextInt(50) + 1; 
    if (ar.contains(temp)) 
     continue; 

    ar.Add(temp); 
    i++; 
} 

此外,美國可以在上面的代碼更改爲類似:

while (i < 4) 
{ 
    int temp = rbselection.nextInt(50) + 1; 
    if (ar.contains(temp)) 
     continue; 

    array[i].setText(temp); 
    ar.Add(temp); 
    i++; 
} 

凡陣列尺寸4.

相關問題