我有一个二维9 x 9数组(twoArray),其中填充了1到17之间的数字。
我试图创建一个一维数组(oneArray),它将为我提供twoArray中数字的出现。

也就是说,如果在doubleArray中数字“1”出现“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;
    }
}

最佳答案

您有一个错字:条件应该是j< twoArray[i].length,而不是j< twoArray[j].length。该程序的其余部分应该可以运行,但是您可以考虑更改一些非常小的事情:

  • 考虑结合num的初始化及其计算
  • 考虑使用++代替+= 1
  • 10-08 17:03