2012-01-12 88 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