多维数组中的ArrayIndexOutOfBoundsException

时间:2014-10-16 04:47:05

标签: java arrays multidimensional-array

我在线程" main"中得到以下异常:java.lang.ArrayIndexOutOfBoundsException: 2 error:

我的代码:

int ia=445;
int ja=445;

double [][][]ma=new double [445][445][2];
ma=na;
for (int kk=1;kk<=2;kk++)
{
   int jj=2;
   if (kk == 2)
   {
     jj=ja;
   }
   for (int ii=2;ii<ia-1;ii++)
   { 
    double uu=0.5*abs(ma[ii][jj][2]+ma[ii-1][jj][2]);
    System.out.println(uu);

   }
}

虽然没有 ArrayIndexOutOfBoundsException 问题,但我仍然遇到此异常。有人可以解释如何解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

问题在于:

double uu=0.5*abs(ma[ii][jj][2]+ma[ii-1][jj][2]);
                             ^               ^
                             here            here too

您只能访问阵列的第三个中的索引01

也许你想要/需要:

double uu=0.5*abs(ma[ii][jj][1]+ma[ii-1][jj][1]);

double uu=0.5*abs(ma[ii][jj][0]+ma[ii-1][jj][0]);

答案 1 :(得分:1)

无论ma[ii-1][jj][2]ii的值如何,

jj都会给您一个例外,因为最后一个索引必须是0或1(因为维度为[445][445][2] )。