美文网首页Java技术文章技术文代码改变世界
【精致Java教程】23:数组(二)

【精致Java教程】23:数组(二)

作者: 许宏川 | 来源:发表于2015-06-06 15:24 被阅读634次

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


静态初始化##

示例代码:

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>

本文代码下载:百度网盘

相关文章

网友评论

    本文标题:【精致Java教程】23:数组(二)

    本文链接:https://www.haomeiwen.com/subject/fypdqttx.html