我创建了一个方法,该方法需要生成随机数,条件是下一个随机数与数组中的前一个不匹配,这是代码
// some code
int k=0;
//some code....
randomgenerator(k); // method call
public void randomgenerator(int j)
{
for(j=0; j<=99; j++){
if(j >= 1){
if (randomset.get(j) == randomset.get(j-1)){
randomset.add(0 + ( j , int)(Math.random() * ((99 - 0) + 1)));
}
else{
randomset.add(0 + (int)(Math.random() * ((99 - 0) + 1)));
}
}
}
}
我得到的错误是java.lang.IndexOutOfBoundsException:无效的索引1,大小为1
最佳答案
由于最初的randomset为空,因此其大小为0,并在索引1处返回异常。如果randomset.add(0 + (int)(Math.random() * ((99 - 0) + 1)));
(不是> = 1),则添加j < 1
的最佳方法。
正确的代码:
public void randomgenerator(int j)
{
for(j=0; j<=99; j++){
if(j >= 1){
if (randomset.get(j) == randomset.get(j-1)){
randomset.add(0 + ( j , int)(Math.random() * ((99 - 0) + 1)));
}
else{
randomset.add(0 + (int)(Math.random() * ((99 - 0) + 1)));
}
}
else {
randomset.add(0 + (int)(Math.random() * ((99 - 0) + 1)));
}
}
}