2015-11-06 55 views
0

我正在轉換一個寫入數組的方法,用於查找從main傳遞的ArrayList的模式。一路上我正在擊中和索引錯誤。我確定它是一個明顯的錯誤,但只是沒有看到它。會愛另一雙眼睛在這!無法看到IndexOutOfBoundsException

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 

我越來越如果數組列表中包含值1,2,3是錯誤: 異常線程 「main」 java.lang.IndexOutOfBoundsException:指數:3,大小:3

+0

你爲什麼不使用的for-each: '的for(int i均有:一個){...' –

回答

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

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

+0

哇。好吧,我不相信我沒有看到!十分感謝你的幫助!我以此爲標誌,我應該睡一會兒哈哈 – Nick