多维数组只是一个数组的数组。你可以把它看作是一个存储多个容器的单一容器。
在这篇文章中,我们将讨论Java中的二维数组。你将看到创建一个二维数组的语法,以及如何在二维数组中添加和访问项目。
如何在Java中声明一个二维数组
要在Java中创建一个二维数组,你必须指定要存储在数组中的项目的数据类型,然后是两个方括号和数组的名称。
下面是语法的样子:
data_type[][] array_name;
我们来看看一个代码例子:
int[][] oddNumbers = { {1, 3, 5, 7}, {9, 11, 13, 15} };
如果你还不明白上面的内容,不要担心。在下一节中,你将了解更多关于二维数组的工作原理以及如何访问存储在其中的项目。
如何在Java中访问二维数组中的项目
我们可以使用两个方括号访问二维数组中的项目。
第一个方括号表示我们要访问的数组,第二个方括号表示我们要访问的项目的索引。
让我们用一个例子来简化上面的解释:
int[][] oddNumbers = { {1, 3, 5, 7}, {9, 11, 13, 15} };
System.out.println(oddNumbers[0][0]);
// 1
在上面的例子中,我们在oddNumbers 数组中有两个数组 -{1, 3, 5, 7} 和{9, 11, 13, 15} 。
第一个数组 -{1, 3, 5, 7} - 用0来表示。
第二个数组--{9, 11, 13, 15} --用1表示。
第一个数组是0,第二个是1,第三个是2,以此类推。
所以为了访问第一个数组中的一个项目,我们给第一个方括号分配了0。由于我们试图访问数组中的第一个项目,我们使用了它的索引,也就是0:oddNumbers[0][0] 。
让我们进一步分解它。
下面是访问项目的代码。oddNumbers[?][?]
我在两个方括号里加了问号--我们会在进展中把它们填进去。
因此,假设我们想访问第二个数组中的一个项目,这个数组用1表示,我们的代码将是这样的:oddNumbers[1][?] 。
现在我们已经进入了第二个数组 ({9, 11, 13, 15}),让我们试着访问其中的一个项目。就像普通数组一样,每个项目都有一个从零开始的索引。
所以要访问13 ,这是第三个项目,我们把它的索引号传给第二个方括号:oddNumbers[1][2] 。
在下一节中,我们将从一个新的例子开始。
如何在Java中访问二维数组中的项目示例
int[][] oddNumbers = { {1, 3, 5, 7}, {9, 11, 13, 15}, {17, 19, 21, 23} };
这里的目标是访问第三个数组中的21。我们的访问代码仍然有问号:oddNumbers[?][?] 。
我们先给第一个问号一个值,指向要访问的特定数组:
Array 0 =>{1, 3, 5, 7}
Array 1 =>{9, 11, 13, 15}
Array 2 =>{17, 19, 21, 23}
我们要找的数字在第三个数组中,数组索引为2。 所以我们已经找到了第一个方括号的值。oddNumbers[2][?]
第二个方括号的值将指向要访问的实际项目。要做到这一点,我们必须指定该项目的索引号。下面是该数组中的索引:
17 => 索引0
19 => 索引1
21 => 索引2
23 => 索引3
21的索引是2,所以我们可以继续把它加到第二个方括号中:oddNumbers[2][2] 。当你把它打印到控制台时,你会得到21的打印结果。
下面是代码的样子:
int[][] oddNumbers = { {1, 3, 5, 7}, {9, 11, 13, 15}, {17, 19, 21, 23} };
System.out.println(oddNumbers[2][2]);
// 21
你可以通过使用一个嵌套的循环来遍历一个二维数组中的所有项目。下面是一个例子:
int[][] oddNumbers = { {1, 3, 5, 7}, {9, 11, 13, 15}, {17, 19, 21, 23} };
for(int i = 0; i < oddNumbers.length; i++){
for(int j = 0; j < oddNumbers[i].length; j++){
System.out.println(oddNumbers[i][j]);
}
}
// 1
// 3
// 5
// 7
// 9
// 11
// 13
// 15
// 17
// 19
// 21
// 23
上面的代码打印出了oddNumbers 数组中的所有项目。
小结
在这篇文章中,我们谈到了Java中的二维数组。
我们看到了创建二维数组的语法。我们还看到了一些例子,显示了如何访问存储在其中的项目。
最后,我们看到了如何循环浏览和打印二维数组中的项目。
编码愉快!