如何为所有按钮设置不同的随机数?

我有一个数组中的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之外,任何人都知道如何将所有其他可能的数字设置在该范围之间吗?

尝试这个:

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

如果我是你..

 public static void main(String[] args) { Set 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迭代设置文本。

要在Java中获取随机数:

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

其中1将是您在该范围内的最小值,50将是您的最大值。 使用此链接作为参考: 在Java中获取随机数

取决于您有多少按钮。 你可以有

 rbselection.nextInt(50) + 1; 

每次调用它时生成1到50范围内的新Int并将其添加到某个列表或Set中。

所以这样的事情:

 Random rand = new Random(); int n = rand.nextInt(50) + 1; ArrayList ar = new ArrayList(); 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++; } 

其中array是大小为4的按钮数组。