如何在二维数组第一维度长度为0时获取第二维度的长度
在Java中获取第一维度长度为0的二维数组的第二维度长度
当你创建String[][] arr = new String[0][3]这类数组时,第一维度长度为0,直接访问arr[0].length会抛出数组越界异常——因为数组里没有任何第二维度的元素可供读取。而且Java不会将你创建时指定的第二维度长度(这里是3)存储在数组的元数据中,这个值只是初始化第一维度元素的规则,但因为第一维度没有元素,规则并没有留下可读取的痕迹。
最实用的解决方案:提前保存第二维度长度
既然创建数组时已经明确了第二维度的长度,直接把这个值存入变量,后续需要使用时直接调用即可:
int secondDimLength = 3; String[][] arr = new String[0][secondDimLength]; // 获取第一维度长度 System.out.println(arr.length); // 输出 0 // 获取第二维度长度 System.out.println(secondDimLength); // 输出 3
这种方法简单高效,完全适配你后续通过System.arraycopy修改第一维度长度的场景——后续新增第一维度元素时,依然可以用这个变量来初始化对应长度的第二维度数组。
极端场景说明
如果数组是从外部传入的,你无法提前获知创建时的第二维度预设值,那么实际上没有办法直接获取这个长度——因为数组本身并没有存储该信息。这种情况下只能要求传递数组的同时提供第二维度长度的参数。
内容的提问来源于stack exchange,提问作者Bledder
相关产品推荐
相关产品推荐

