java.lang.ArrayIndexOutOfBoundsException:0甚至在检查null之后

时间:2017-10-19 04:24:20

标签: java arrays indexoutofboundsexception

这是我想要运行的代码:

public int numIslands(char[][] grid) {
    if(grid==null)
        return 0;
    else
    {
        int count=0;
        gridtemp=grid; // gridtemp is a global character array
        visited=new boolean[grid.length][grid[0].length]; //****ERROR******
        for(int i=0;i<grid.length;i++)
        {
            for(int j=0;j<grid[0].length;j++)
            {
                if(IslandCount(i,j)>1)
                    count++;
            }
        }
        System.out.println(count);
        return count;
    }
}

此代码抛出错误java.lang.ArrayIndexOutOfBoundsException:0,如上面代码片段中所示

2 个答案:

答案 0 :(得分:0)

长度为0的数组不必为空。

@Test
public void testArrayWithLengthZero(){
    int[] i = new int[0];
    System.out.println(i==null);
}

输出为false。

答案 1 :(得分:0)

您的代码中可能存在2个问题

  • 看起来grid [0]为空。检查网格[0]。
  • grid可能长度为0,因此当您访问grid [0]时会抛出ArrayIndexOutOfBoundsException