这篇文章讲多维数组。多维数组就是数组的元素也是数组,有几维就叫几维数组。例如二维数组就是元素都是一维数组的数组。所以多维数组并不是什么新语法也不是什么新的数据类型,就是一种数据结构或者说数据存储思路而已。所以多维数组的使用和普通数组一样分静态初始化和动态初始化。

静态初始化##
示例代码:
int[][] suArr = {{11, 12, 13, 14} , {21, 22, 23, 24}, {31, 32, 33, 34}}; // 3 * 4的二维数组
// 嵌套foreach循环输出二维数组的所有元素
for (int[] arr : suArr) {
for (int i : arr) {
System.out.println(i);
}
System.out.println("**********");
}
运行结果:
<pre>
11
12
13
14
21
22
23
24
31
32
33
34
</pre>
动态初始化##
回顾一下数组怎么动态初始化,语法是:<code>int[] arr = new int[3];</code>。最后的数组长度3可以去掉吗?不能。动态初始化可以不确定每个元素是什么,但是数组的长度必须在初始化时就确定。那么多维数组的动态初始化就得这样:<code>int[][] suArr = new int[3][];</code>。后面的第一个[ ]里的数组长度不能去掉。但是第二个[ ]可以不写长度就是先不确定每个元素是什么。当然你也可以指明:<code>int[][] suArr = new int[3][4];</code>。像这样就是一个3 * 4的二维数组了。但是动态初始化的魅力就是让元素多样性啊,何必早早确定呢。例如下面的代码可以让每个数组元素的长度不一样。
示例代码:
int[][] suArr = new int[3][]; // 3 * ?的二维数组
suArr[0] = new int[]{11, 12};
suArr[1] = new int[]{21, 22, 23};
suArr[2] = new int[]{31, 32, 33,34};
// 嵌套foreach循环输出二维数组的所有元素
for (int[] arr : suArr) {
for (int i : arr) {
System.out.println(i);
}
System.out.println("**********");
}
运行结果:
<pre>
11
12
21
22
23
31
32
33
34
</pre>
本文代码下载:百度网盘
网友评论