1、我们先要理解什么是二维数组?
其实二维数组就是将两个或者两个以上的数组嵌套在一起就形成了二维数组。
接下我们先通过对二维数组的定义语法来看看二维数组的书写方式。
动态初始化:数据类型 数组名称 [][] = new 数据类型[行的个数][列的个数]。
静态初始化:数据类型 数组名称 [][] = new 数据类型[][]{{值,值,值}{值,值,值}}。
通过一组简单的代码来看看如何定义二维数组:
在这里插入代码片public class ArrayDemo {
public static void main(String[] args) {
int data[][] = new int[][] {{1 , 2 ,5 , 6},{4, 5 , 8},{11, 22 , 33 , 44}}; //定义二维数组
for (int i = 0; i < data.length; i++) { //外层循环控制数组行
for (int j = 0; j < data[i].length; j++) { //内层循环控制数组列
System.out.println("data["+ i +"][" + j + "] = " + data[i][j]); //数组访问
}
System.out.println(); //进行换行
}
}
}
其运行结果为:
本程序定义了一个二维数组,并且每一行数组的数据长度不同,外层循环控制着数组行下标,内层循环控制着数组列下标,定位每一个数组时都需要通过行和列两个下标共同作用。
在上一小节总结中,用到了foreach循环来加强循环,接下来我们看看在二维数组中是如何体现的。代码演示如下:
在这里插入代码片public class ArrayDemo {
public static void main(String[] args) {
int data[][] = new int[][] {{1,3,5,7,9},{5,9,11,45},{14,25,36,47,58}}; //定义二维数组
for (int temp[] : data) { //外层循环获取每一行数组
for (int num : temp) { //内层循环获取数组内容
System.out.print(num + "、"); //输出数组内容
}
System.out.println(); //进行换行处理
}
}
}
其代码运行结果如下:
**
**
在利用foreach结构输出二维数组时,外层循环返回的是每一行数组(“int temp[] : data”),内层循环实现每个数据的获取与输出。