基本概念
public class Main {
public static void main(String[] args) {
//定义形式 int[][]
//解读,由原来的一维数组的每一个元素变为一维数组,就构成了二维数组
int[][] a = {{1,2,3},{4,5,6},{7,8,9}};
//输出二维数组
for(int i = 0; i < a.length; i++){
//a[i].length得到对应的每个一维数组的长度
for(int j = 0; j < a[i].length; j++){
System.out.print(a[i][j] + "\t");
}
System.out.println();
}
//关于二维数组的概念
System.out.println("二维数组元素的个数:" + a.length);
//二维数组的每个元素为一维数组
//访问第 i + 1 个一维数组的第 j + 1 个元素的为a[i][j]
}
}
动态初始化
- 语法:类型[][] 数组名 = new 类型[大小][大小]
- 例子:int a[][] = new int[2][3]; ```java package test;
public class Main { public static void main(String[] args) { int[][] a = new int[2][3]; //等价于 // int[][] a ;//声明二维数组 // a = new int[2][3];//再开辟空间 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(); } } }
![image.png](https://cdn.nlark.com/yuque/0/2021/png/21705001/1635581500602-59f8737f-4530-42a3-856f-861b7dffc870.png#clientId=u6150a0b9-c539-4&from=paste&height=241&id=ucaf02656&margin=%5Bobject%20Object%5D&name=image.png&originHeight=188&originWidth=592&originalType=binary&ratio=1&size=99827&status=done&style=none&taskId=uc162ab69-7263-456a-b308-2690b965bfc&width=759)
<a name="XMz3f"></a>
# 列数不定的动态初始化
```java
public class Main {
public static void main(String[] args) {
//创建二维数组,一共含3个一维数组,但是每个一维数组还未开辟空间
int[][] a = new int[3][];
for(int i = 0; i < a.length; i++){//遍历a中的每一个一维数组
//给每一个一维数组开辟空间 new
//如果没有给一维数组 new,那么a[i]就是null
a[i] = new int[i + 1];
//遍历一位数组,并给每一个元素赋值
for(int j = 0; j < a[i].length; j++){
a[i][j] = i + 1;
}
}
System.out.println("输出数组中的元素");
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();
}
}
}
静态初始化
- 语法:类型[][] 数组名 = {{数据1,数据2,……},{数据1,数据2,……},{数据1,数据2,……}};
例子:int a[][] = {{1,2,3},{4,5},{6}};
public class Main {
public static void main(String[] args) {
int[][] a = {{1,2,3},{4,5},{6}};
System.out.println("输出数组中的元素");
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();
}
}
}
细节
一维数组的声明方式:
int[] x;
- int x[];
二维数组的声明方式:
- int[][] x;
- int x[][];
- int []x[];
二维数组实际上是由多个一维数组组成的,它的各个一维数组长度可以相同也可以不同;
比如:a[][]是一个二维数组
int[][] a = {{1,2},{3.4.5}};
该二维数组是由a[0]是一个含有两个元素的一维数组,a[1]是一个含有三个元素的一维数组组成,我们可以称之为列数不等的二维数组。