java中多维数组通过“数组的数组”实现不等长列,即外层为引用数组,每行单独初始化不同长度的一维数组,遍历时需用arr[i].length动态获取行长度。

声明外层数组,不分配内层
先创建外层数组,只确定“行数”,内层暂不初始化:
-
`int[][] grid = new int[4][];` —— 声明 4 行,但每行都是
null - 此时
grid.length == 4,但grid[0]到grid[3]都未指向任何一维数组
逐行为内层分配不同长度
根据实际需求,为每一行单独 new 一个一维数组:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- `grid[0] = new int[2];` —— 第 0 行有 2 个元素
- `grid[1] = new int[5];` —— 第 1 行有 5 个元素
- `grid[2] = new int[1];` —— 第 2 行只有 1 个元素
- 各子数组互不影响,内存独立,长度完全自由
支持静态初始化写法
如果数据已知,可用大括号直接定义不规则结构:
- `int[][] data = { {1}, {2, 3, 4}, {5, 6} };`
- 编译器自动推断外层数组长度为 3,每行长度分别为 1、3、2
- 简洁直观,适合测试或固定配置场景
遍历和访问需按行检查长度
因每行长度不同,不能假设统一列数,必须用 arr[i].length 获取当前行长度:
- 正确写法:
for (int j = 0; j - 错误写法:
for (int j = 0; j (混淆了行数与列数) - 访问前建议判空:
if (grid[i] != null),避免NullPointerException
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










