0
框架:Java的随机数发生器产生重复
public static List<Integer> buttonIdList = new ArrayList();
public void myMainMethod() {
for(Integer i = 0; i < 11; i++) {
int randomButtonId = getUniqueIdNumber();
}
}
private static Integer getUniqueIdNumber() {
Random ran = new Random();
int randomButtonId = ran.nextInt(20) + 1;
if(buttonIdList.contains(randomButtonId)) {
getUniqueIdNumber();
} else {
buttonIdList.add(randomButtonId);
}
return randomButtonId;
}
当代码遇到重复,它调用本身(递归),并在第二次尝试,如果该号码是唯一的return语句返回给myMainMethod或获取UniqueIdNUmber?
return语句应该放在哪里?
如果您的要求是唯一的数字,您应该考虑使用数字1到20生成一个集合并随机播放。 – Henrik
@Henrik是的,我在一些stackoverflow问题中也看到了这个选项。但我想看看我的代码出错了。 – codeinprogress