基于另一个数组递增数组中的值

时间:2012-01-12 23:35:35

标签: java arrays multidimensional-array increment

我有一个2维9 x 9阵列(twoArray),其中填充了1和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;
    }
}

2 个答案:

答案 0 :(得分:5)

你有一个错字:条件应该是j< twoArray[i].length,而不是j< twoArray[j].length。程序的其余部分应该可以工作,但您可以考虑更改几个非常小的东西:

  • 考虑将num的初始化与其计算结合起来
  • 考虑使用++代替+= 1

答案 1 :(得分:4)

你需要

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