Java 中的多维数组

2025 年 8 月 12 日 | 阅读 6 分钟

Java 中的多维数组本质上是数组的数组。它允许我们将数据存储在表格或网格状结构中,使其适用于矩阵、游戏棋盘或任何需要多个维度的数据的场景。当我们想以表格形式(行和列)存储数据时,它非常有用。

它可以是二维 (2D) 或三维 (3D) 数组。

二维 (2D) 数组

它是最简单的多维 数组,包含行和列。

声明

我们可以通过单条语句声明和初始化二维数组,如下所示。

分配值

示例

二维数组的表示

Multi-Dimensional Arrays in Java

请注意,Java 使用零基索引。这意味着 Java 中数组的索引从 0 开始。

另外请注意,在多维数组中,每一行的长度都可以不同。这意味着每一行可能不包含相同数量的元素。

二维 (2D) 数组 Java 程序

示例

编译并运行

输出

 
1 2 3
4 5 6
7 8 9   

说明

在上面的程序中,我们声明并初始化了一个 3x3 的矩阵。第一个 for 循环 遍历行,第二个 for 循环遍历列。第一个打印语句在元素之间打印空格,第二个打印语句将光标移到下一行。

带用户输入的二维 (2D) 数组

示例

输出

 
Enter the number of rows:3
Enter the number of columns:3
Enter the elements of the array:
Enter element for position (0, 0): 1
Enter element for position (0, 1): 2
Enter element for position (0, 2): 3
Enter element for position (1, 0): 4
Enter element for position (1, 1): 5
Enter element for position (1, 2): 6
Enter element for position (2, 0): 7
Enter element for position (2, 1): 8
Enter element for position (2, 2): 9
The entered 2D array is:
1 2 3 
4 5 6 
7 8 9    

三维 (3D) 数组

它是二维数组的复杂形式。换句话说,它是二维数组的数组。

声明

我们可以通过一个语句声明并初始化一个三维数组,如下所示。

分配值

示例

三维数组的表示

Multi-Dimensional Arrays in Java

三维 (3D) 数组 Java 程序

示例

编译并运行

输出

 
Elements of the 3D Array:
1 2 3 
4 5 6 

7 8 9 
10 11 12    

多维数组的大小

我们可以通过将所有维度的尺寸相乘来计算数组的大小。它给出了数组可以存储的元素数量。例如,int[][][] num = new int[5][5][5]; 可以存储总共 125 个元素。

为什么要使用多维数组?

多维数组在许多现实世界的场景中都很有用,例如:

  1. 数学计算:表示矩阵以进行代数计算。
  2. 游戏开发:存储棋盘布局、游戏网格或关卡。
  3. 图像处理:表示数字图像中的像素。
  4. 数据分析:管理结构化数据,如电子表格或数据库。

结论

Java 中的多维数组为处理有序 数据结构 提供了一种有效的解决方案。多维数组超越了单维数组的功能,因为它们支持表格组织,从而产生了从科学计算到游戏开发的各种应用。

二维数组是需要矩阵计算、寻路实现和数据表示的应用程序的首选形式。生成锯齿状数组的选项使开发过程更加灵活,因为它们可以处理不规则的数据格式。

多维数组选择题

1. 在遍历二维数组的所有元素时,最常见的方法是使用

  1. 单个 for 循环
  2. while 循环
  3. 嵌套循环
  4. forEach 方法(在此上下文中不能直接应用于原始数组)
 

答案:c)

解释:为了访问多维数组中的每个元素,我们需要一个用于每个维度的循环,通常是嵌套的 for 循环。


2. 在 Java 中,二维数组本质上是一个 ___ 的数组。

  1. 对象
  2. 基本类型
  3. 一维数组
  4. 变量
 

答案:c)

解释:Java 中的二维数组是一个数组,其中每个元素都是一个一维数组。


3. 要声明一个名为 grid 的 3x4 整型二维数组,以下哪个语法是正确的?

  1. int grid = new int[3][4];
  2. int[][] grid = new int[3][4];
  3. int[3][4] grid;
  4. int grid[][] = new int[][];
 

答案:b)

解释:声明和创建二维数组的语法是:dataType[][] arrayName = new dataType[rows][columns]; 


4. 给定声明 String[][] texts = new String[2][3];,在显式初始化之前,texts[0][0] 的默认值是什么?

  1. ""(空字符串)
  2. "0"
  3. null
  4. 一个空的 String 对象
 

答案:c)

解释:对象类型(如 String)在数组中的默认值为 null。


5. 使用哪个属性来查找名为 arrayName 的二维数组中的行数?

  1. columns
  2. length
  3. arrayName[0].length
  4. rows
 

答案:b)

解释:对于二维数组,arrayName.length 返回内部数组的数量。