问题|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; // 列长度
    ...
}

如图:

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务