Java中如何创建char[][]类型的数组的数组(禁用ArrayList)
如何在Java中创建char[][]的数组(不使用ArrayList)
嘿,刚上手Java的话,这种嵌套数组的写法确实容易搞混,我来给你一步步讲明白怎么实现你要的效果👇
首先要明确:你想要的其实是一个三维字符数组(char[][][]类型),因为这个数组里的每一个元素本身就是一个char[][]二维数组。完全符合你要的“通过索引直接返回完整二维数组”的需求,而且不需要用到ArrayList。
完整实现示例
先看最直观的写法,和你给出的示例完全对应:
// 先定义你原本的单个二维字符数组 char[][] ARRAY_1 = { {'.','#'}, {'$','@'} }; char[][] ARRAY_2 = { {'.','#'}, {'$','@'} }; // 创建三维数组,把上面的二维数组装进去 char[][][] ARRAY = {ARRAY_1, ARRAY_2};
如果你觉得单独定义每个二维数组太繁琐,也可以直接初始化三维数组,一步到位:
char[][][] ARRAY = { { {'.','#'}, {'$','@'} }, // 对应你的ARRAY_1 { {'.','#'}, {'$','@'} } // 对应你的ARRAY_2 };
怎么访问元素
- 要获取完整的二维数组:用
ARRAY[索引],比如ARRAY[0]会返回整个ARRAY_1,ARRAY[1]返回整个ARRAY_2 - 如果要访问二维数组里的具体字符:可以继续嵌套索引,比如
ARRAY[0][1][0]就对应ARRAY_1第二行第一列的'$'
注意事项
因为Java的普通数组长度是固定的,一旦创建就不能再动态添加新的二维数组进去——这也是它和ArrayList的核心区别。但既然你明确要求不能用ArrayList,这种写法就是最符合你需求的最佳实现啦。
内容的提问来源于stack exchange,提问作者Peta Hillier
相关产品推荐
相关产品推荐

