首页 > 编程笔记 > Java笔记 阅读:8

Java二维数组的创建和使用(新手必看)

在 Java 中,如果一维数组中的各个元素仍然是一个数组,那么它就是一个二维数组。

二维数组常用于表示表,表中的信息以行和列的形式被组织,第一个下标代表元素所在的行,第二个下标代表元素所在的列。

二维数组的创建

二维数组可以被看作是特殊的一维数组,二维数组的创建有以下两种方式。

1) 先声明,再用new关键字进行内存分配

声明二维数组的语法如下:
数组元素的类型 数组名字[ ][ ];
数组元素的类型[ ][ ] 数组名字;
声明二维数组,代码如下:
int a[][];
同一维数组一样,二维数组在声明时也没有分配内存空间,同样要使用 new 关键字来分配内存,然后才可以访问每个元素。

对于高维数组,有两种为数组分配内存的方式。第一种内存分配方式是直接为每一维分配内存空间,代码如下:
a = new int[2][4];
上述代码创建了二维数组 a,二维数组 a 中包括两个长度为 4 的一维数组,内存分配如下图所示。


图 1 二维数组内存分配(第一种方式)

第二种内存分配方式是分别为每一维分配内存,代码如下:
a = new int[2][];
a[0] = new int[2];
a[1] = new int[3];
上述代码创建了二维数组 a,但是只声明了 a 第一维的长度,也就是“行数”,第二维的长度也就是“列数”,则是为每一行单独声明的,因此创建的数组 a 是“不定长数组”,其内存分配如下图所示。


图 2 二维数组内存分配(第二种方式)

2) 声明的同时为数组分配内存

第二种创建方式与第一种实现的功能相同,只不过声明与赋值被合并到同一行代码中。

例如,创建一个 2 行 4 列的二维数组,代码如下:
int a = new int[2][4];

二维数组的初始化

二维数组的初始化与一维数组初始化类似,同样可以使用大括号完成。语法如下:
type arrayname[][] = {value1,value2,…,valuen};

初始化二维数组,代码如下:
int myarr[][] = {{12,0},{45,10}};
初始化二维数组后,要明确数组的下标都是从 0 开始的。例如,上面的代码中 myarr[1][1] 的值为 10。

int 型二维数组是以 int a [][] 来定义的,所以可以直接给 a[x][y] 赋值。例如,给 a[1] 的第 2 个元素赋值的语句如下:
a[1][1] = 20;

二维数组的使用

二维数组在实际应用中被用得非常广泛。下面的实例就是使用二维数组输出一个 3 行 4 列且所有元素都是 0 的矩阵。

【实例】输出一个 3 行 4 列且所有元素都为 0 的矩阵。
在项目中创建 Matrix 类,在主方法中编写代码实现输出一个 3 行 4 列且所有元素都为 0 的矩阵。实例代码如下:
public class Matrix { // 创建类
    public static void main(String[] args) { // 主方法
        int a[][] = new int[3][4]; // 定义二维数组
        for (int i = 0; i < a.length; i++) { // 循环遍历数组中的每个元素
            for (int j = 0; j < a[i].length; j++) {
                System.out.print(a[i][j]); // 将数组中的元素进行输出
            }
            System.out.println(); // 输出空格
        }
    }
}
运行结果如下:

0000
0000
0000

相关文章