Java中如何获取未知大小二维数组尺寸或无需尺寸遍历数组?
Java二维数组:获取尺寸与遍历方法
首先纠正你代码里的一个小错误:main是Java的关键字,不能用来作为返回值类型,正确的方法签名应该是:
public int[] findBall(int[][] grid) { }
一、获取任意大小二维数组的尺寸
1. 获取行数
二维数组本质是“数组的数组”,直接用 grid.length 就能拿到行数(也就是外层数组中包含的一维数组个数)。
2. 获取列数
如果二维数组的每行长度一致(像你提供的5×5示例),可以先判断数组非空,再取第一行的长度:
int rows = grid.length; int cols = 0; if (rows > 0) { cols = grid[0].length; }
如果是不规则二维数组(每行长度不同),需要单独遍历每行,用 row.length 拿到对应行的列数。
二、未知尺寸下遍历二维数组
1. 普通for循环(支持索引操作)
适合需要知道元素位置(行号i、列号j)的场景:
// 遍历每一行 for (int i = 0; i < grid.length; i++) { int[] currentRow = grid[i]; // 跳过可能的空行 if (currentRow == null) { continue; } // 遍历当前行的每个元素 for (int j = 0; j < currentRow.length; j++) { int element = currentRow[j]; // 这里写你对元素的处理逻辑,比如打印 System.out.print(element + " "); } System.out.println(); }
2. 增强for循环(foreach,写法更简洁)
适合只需要处理元素值、不需要索引的场景:
// 遍历每一行 for (int[] currentRow : grid) { // 跳过可能的空行 if (currentRow == null) { continue; } // 遍历当前行的每个元素 for (int element : currentRow) { // 处理元素,比如打印 System.out.print(element + " "); } System.out.println(); }
注意事项
如果二维数组中存在null的行(比如外层数组里某个元素是null),遍历前一定要判断,否则会触发NullPointerException(空指针异常)。
内容的提问来源于stack exchange,提问作者Thay
相关产品推荐
相关产品推荐

