详解二维数组
二维数组对我的困惑已久,一直感觉是雾中看花,镜中窥月。下面深刻理解一下。
1、什么是二维数组呢?
二维数组本质上是以数组作为数组元素
的数组,即数组的数组。
- 二维数组就是一个有行和列的矩阵,每一行代表一个数组,即数组的数组;
- 每一行数组内元素所在的位置可以用行和列号来表示;
2、二维数组的使用
2.1、二维数组的创建
-
格式1:行列确定
数据类型[][] 数组名 = new 数组类型[m][n]; // 或 数据类型 [][]数组名 = new 数组类型[m][n];
m
代表这个二维数组由多少个一维数组组成;n
代表每个一维数组中有多少个数组元素;
-
格式2: 列不确定
-
已知要创建的二维数组的一维数组的数量却不知一维数组中的数组元素的数量,具体如下:
数组类型[][] 数组名 = new 数组类型[m][]; // 或 数据类型 [][]数组名 = new 数组类型[m][];
-
动态声明办法示例:
int[][] nums = new int[3][]; nums[0] = int[3]; // 此处需要特别注意数组下标与为数组分配内存空间的个数分开 nums[1] = int[3]; nums[2] = int[3]
-
具体程序代码如下(声明一个3行3列的二维数组,并为其初始化):
public class Array1 { public static void main(String[] args) { int[][] nums = new int[3][]; for (int i = 0; i < nums.length; i++) { nums[i] = new int[3]; for (int j = 0; j < nums[i].length; j++) { nums[i][j] = 1; // 为所有二维数组元素初始化为1 } } // 用两个加强型循环输出二维数组的值 for (int[] num:nums) { for (int n:num) { System.out.print(n); } } } }
-
-
格式3:直接定义
数据类型 [][] 变量名=new 数据类型[][]{{元素…},{元素…},{元素…}}; // 或 数据类型 [][] 变量名={{元素…},{元素…},{元素…}};
-
示例:
int[][] array={{1}, {1, 2}, {1, 2, 3}} int[][] array=new int[][]{{1}, {1, 2}, {1, 2, 3}}
-