2016-11-19 69 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.