2012-01-12 129 views
3

我有一個2維9×9陣列(twoArray),其被1 & 17.
我試圖創建的一門維陣列(oneArray)之間填充有數字,將爲我提供twoArray中的數字的發生。基於另一個陣列的陣列遞增值

即,如果數字'1'在twoArray中出現'3'次,那麼oneArray [0]中的值將是'3',數字'15'一次,然後oneArray [14]將是'1 '等 我有我寫的下面的代碼,但我得到'ArrayIndexOutOfBoundsException'

不知道我的代碼甚至是正確的完成此操作。任何指導將不勝感激。我不是在尋找答案,只是一些建議,所以我可以自己做。

int[] oneArray= new int[17]; 
for (int i= 0; i< twoArray.length; i++) 
{ 
    for (int j= 0; j< twoArray[j].length; j++) **// exception occurs here** 
    { 
     int num = 0; 
     num = twoArray[i][j] - 1; 
     oneArray[num] += 1; 
    } 
} 

回答

5

你有一個錯字:條件應該是j< twoArray[i].length,不j< twoArray[j].length。該計劃的其餘部分應該工作,但你可能會考慮改變幾個非常小的事情:

  • 考慮與其計算相結合的num初始化
  • 考慮代替使用+++= 1
+0

謝謝。不知道我是怎麼錯過的! – 2012-01-12 23:40:57

4

您需要

for (int j= 0; j< twoArray[i].length; j++) 
          ^--i here, and not j