Java 无法看到IndexOutOfBoundsException
我正在转换一个为数组编写的方法,该方法用于查找从main传递的ArrayList的模式。在这条路上的某个地方,我碰到了一个错误。我确信这是一个明显的错误,但就是看不到它。我想再多看一眼Java 无法看到IndexOutOfBoundsException,java,arraylist,Java,Arraylist,我正在转换一个为数组编写的方法,该方法用于查找从main传递的ArrayList的模式。在这条路上的某个地方,我碰到了一个错误。我确信这是一个明显的错误,但就是看不到它。我想再多看一眼 public static int getMode(ArrayList<Integer> a) { int i ,j ,ctr=0 ,wantedScore ,maxsofar ,position=0 ,mode; ArrayList<Integer> ctrArray =
public static int getMode(ArrayList<Integer> a)
{
int i ,j ,ctr=0 ,wantedScore ,maxsofar ,position=0 ,mode;
ArrayList<Integer> ctrArray = new ArrayList<>(a.size());
for(i=0; 1< a.size(); i++)
{
wantedScore = a.get(i);
for(j=i+1; j < a.size(); j++)
{
if(a.get(i)==wantedScore)
{
ctr++;
}//End IF
ctrArray.add(ctr);
}//End Inner Loop
}//End Outer For Loop
//Find highest value counter
maxsofar=a.get(0);
for(i=0; i< a.size(); i++)
{
if(ctrArray.get(i)>maxsofar)
{
maxsofar=ctrArray.get(i);
position=i;
}//End If
}//End For Loop
if(maxsofar>0)
mode=a.get(position);
else
mode=-1;
return mode;
}//End getMode
publicstaticintgetmode(arraylista)
{
int i,j,ctr=0,wantedScore,maxsofar,position=0,mode;
ArrayList ctrArray=新的ArrayList(a.size());
对于(i=0;1maxsofar)
{
maxsofar=ctrArray.get(i);
位置=i;
}//如果结束
}//循环结束
如果(最大值>0)
模式=a.get(位置);
其他的
模式=-1;
返回模式;
}//结束模式
如果数组列表包含值1、2、3,则得到的错误为:
线程“main”java.lang.IndexOutOfBoundsException中的异常:索引:3,大小:3(i=0;1 for(i=0; 1< a.size(); i++)
它应该是(i=0;i的(i=0;1
它应该是(i=0;i
wow。好吧,我不敢相信我没看到!非常感谢你的帮助!我把这当作是我应该睡一觉的信号哈哈。好吧,我不敢相信我没看到!非常感谢你的帮助!我认为这是一个信号,我应该睡一觉哈,你为什么不用:for(inti:a){…
为什么不用:for(inti:a){…