携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情
1️⃣前言
大家好,我是翼同学。今天笔记的内容是:
- 二维数组的使用
2️⃣内容
2.1、如何理解Java中的多维数组?
与其他编程语言的数组相比,Java数组可以称为是:不规则数组。事实上,Java没有多维数组,只有一维数组,只不过由若干数组元素构成另一个数组,此时模拟的就是多维数组。因此Java的多维数组被解释为:数组的数组。
而在多维数组中,常用的就是二维数组。所谓的二维数组,其实可以看成有一个一维数组,该数组的每个子元素也是一维数组,就这样形成了二维数组。我们通常使用二维数组存储类似表格数据。
2.2、二维数组的定义
2.2.1、静态初始化
- 格式一举例:
int[][] array = new int[][] {{1}, {2, 3}, {4, 5, 6}};
这也可以看出Java数组的不规则特性。
- 格式二举例:
int[][] array = {{1}, {2, 3}, {4, 5, 6}};
其实这相当于格式一的简写。
- 格式三举例:
int array[][] = new int[][] {{1}, {2, 3}, {4, 5, 6}};
前面俩括号可以放二维数组名的后面。当然,此时后面的new int[][]也可以省略掉。
- 格式四举例:
int[] array[] = new int[][] {{1}, {2, 3}, {4, 5, 6}};
这样写也表示二维数组,不会报错。只不过通常比较少使用。
2.2.2、动态初始化
- 格式一举例:
int[][] array = new int[3][2];
这相当于定义了一个三行两列的二维数组。也就是说,该数组是一个包含三个元素的数组,并且每个元素都是拥有2个子元素的一维数组。
- 格式二举例:
int[][] array = new int[3][];
第二个括号中的数值可以省略,编译不会报错。其具体的取值根据后续的代码而定。
2.3、调用指定索引的元素
在二维数组中,如何调用指定索引处的元素?
语法如下:
数组名[索引1][索引2]
举个例子:
int[][] array =
{
{1,2,3},
{4,5,6},
{7,8,9}
};
在上述例子中,定义了一个3行3列的二维数组array,此时我们需要打印出第2行中的第3个元素,也就是6。
语句如下:
System.out.println(array[1][2]); //=> 6
2.4.、二维数组的长度
一样的,我们可以通过length属性来获取二维数组的长度。
举个例子:
int[][] array = {{1},{2,3},{4,5,6}};
System.out.println(array.length);
System.out.println(array[0].length);
System.out.println(array[1].length);
System.out.println(array[2].length);
输出结果为:
3
1
2
3
可以看到array.length表示该二维数组一共有几个一维子数组,array[i].length则获取每个子数组的具体长度。
2.5、循环遍历二维数组
- 传统for循环:
int[][] bigArray = {{1},{2,3},{4,5,6}};
for(int i = 0; i < bigArray.length; i++) {
for(int j = 0; j<bigArray[i].length; j++) {
System.out.print(bigArray[i][j] + " ");
}
System.out.println();
}
- for each 循环:
int[][] bigArray = {{1},{2,3},{4,5,6}};
for(int[] arr : bigArray) {
for(int i : arr){
System.out.print(i + " ");
}
System.out.println();
}
- 输出结果都是:
1
2 3
4 5 6
3️⃣写在最后
好了,今天的笔记就记到这里。