如何为所有按钮设置不同的随机数?
我有一个数组中的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的按钮数组。