【Java】:二维数组的定义、初始化、长度以及循环遍历等...

1,043 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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️⃣写在最后

好了,今天的笔记就记到这里。