问题|java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 @Java
问题描述
背景:
- 在使用二维数组,获取数组的列长度时,常常会这样写
public boolean findNumberIn2DArray(int[][] matrix, int target) {
int col = matrix[0].length; // 列长度
...
}
- 但今日在刷算法题时,却执行出错,提示如下错误
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
具体:
解决方法
说明:
- 当二维数组为空时,matrix[0]是不存在的,会产生数组越界。
- 如果这样的话,该如何获取二维数组的列长度才更严谨呢?—— 添加一个判断!
操作:
- 先判断数组是否为空,若不为空,则获取列长度
public boolean findNumberIn2DArray(int[][] matrix, int target) {
int row = matrix.length; //行长度
if(row == 0) return false;//先判断数组是否为空,为空则返回,不进行后续操作
int col = matrix[0].length; // 列长度
...
}
如图: