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

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


【精致Java教程】23:数组(二)_第1张图片

静态初始化##

示例代码:

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("**********");
}

运行结果:


11
12
13
14


21
22
23
24


31
32
33
34


动态初始化##

回顾一下数组怎么动态初始化,语法是:int[] arr = new int[3];。最后的数组长度3可以去掉吗?不能。动态初始化可以不确定每个元素是什么,但是数组的长度必须在初始化时就确定。那么多维数组的动态初始化就得这样:int[][] suArr = new int[3][];。后面的第一个[ ]里的数组长度不能去掉。但是第二个[ ]可以不写长度就是先不确定每个元素是什么。当然你也可以指明:int[][] suArr = new int[3][4];。像这样就是一个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("**********");
}

运行结果:


11
12


21
22
23


31
32
33
34


本文代码下载:百度网盘

你可能感兴趣的:(【精致Java教程】23:数组(二))