无法看到IndexOutOfBoundsException

时间:2015-11-06 07:28:37

标签: java arraylist

我正在转换为数组编写的方法,用于查找从main传递的ArrayList的模式。我正在打击和索引错误的某个地方。我确定这是一个明显的错误,但只是没有看到它。会喜欢另一双眼睛!

 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

如果Array列表包含值1,2,3,我得到的错误是: 线程“main”中的异常java.lang.IndexOutOfBoundsException:Index:3,Size:3

1 个答案:

答案 0 :(得分:5)

 for(i=0; 1< a.size(); i++)

应为for(i=0; i< a.size(); i++)