避免在Android应用上循环重复

时间:2018-05-20 00:00:45

标签: java android android-studio

我有一个应用程序,我随机化5个不同的整数(第一个将在启动活动后生成,其他4个将在按下按钮后)将它们用作ID以从SQLite DB中获取结果。

问题是我不希望重复这些数字,所以我制作了一个数组和一个循环以避免这种情况,但它并没有按预期工作,事实上它什么也没做。代码如下所示:

mult_by_2

第一个已经创建,因此每当我按下按钮int[] repeatArray = new int[5]; Integer contRep=0; Integer myInt=0; randomizeData(); if(contRep==0){ repeatArray[0]=myInt; }else{ for (int i=0;i<repeatArray.length;i++){ while(myInt==repeatArray[i]){ randomizeData(); } } repeatArray[contRep]=myInt; } contRep++; public void randomizeData(){ myInt = r.nextInt(27 - 1) + 1; } 为1,并且第一个数字已经保存在该数组中。请注意,每当我按下按钮时,它都会执行上面的代码。我认为循环工作正常但我仍然有时会得到重复。我做错了什么?

1 个答案:

答案 0 :(得分:0)

  

你必须维护一个在ArrayOfPreviousNumbers之前生成的随机数的数组;如果ArrayOfPreviousNumbers中已经存在新的随机生成的数字,那么您可以进行交叉检查吗?

生成[20,80]范围内的随机数,使用

final int random = new Random().nextInt(61) + 20; // [0, 60] + 20 => [20, 80]

要检查是否已生成随机,请在ArrayOfPreviousNumbers中使用contains

查找