1,二维数组介绍
【1】概述:
-
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,
-
类型说明符 数组名[常量表达式][常量表达式]。
-
二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],
-
对角矩阵:n阶方阵主对角线外都是零元素。
【2】格式
-
int[][] arr = new int[3][2]; 用的最多。
-
解释
class Demo1_Array {
public static void main(String[] args) {
int[][] arr = new int[3][2];
/*
这是一个二维数组
这个二维数组中有3个一维数组
每个一维数组中有2个元素
[[I@19bb25a //二维数组的地址值
[I@da6bf4 //一维数组的地址值
0 //元素值
*/
System.out.println(arr); //二维数组
System.out.println(arr[0]); //二维数组中的第一个一维数组
System.out.println(arr[0][0]); //二维数组中的第一个一维数组的第一个元素
}
}
-
int[][] arr = new int[3][];
-
int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
【3】注意事项
-
以下格式也可以表示二维数组
-
数据类型 数组名[][] = new 数据类型[m][n];
-
数据类型[] 数组名[] = new 数据类型[m][n];
-
-
注意下面定义的区别
int x; 一个int数量类型,变量命是x
int y; 一个int数据类型,变量命是y
int x,y;
int[] x; 定义一个int数据类型的一维数组,命名为x
int[] y[]; 定义一个二维数组
int[]x,y[]; x是一维数组,y是二维数组
2, 二维数组图解
【1】格式: int[][] arr = new int[3][2]; 图解
class Demo2_Array {
public static void main(String[] args) {
int[][] arr = new int[3][2];
System.out.println(arr); //打印二维数组
System.out.println(arr[0]); //打印二维数组中的第一个一维数组
System.out.println(arr[0][0]); //打印二维数组中的第一个一维数组中的第一个元素
}
}
二维数组中存放的是一维数组的地址值,一维数组存放着元素
【2】格式:int[][] arr = new int[3][];
class Demo3_Array {
public static void main(String[] args) {
int[][] arr = new int[3][]; //这是一个二维数组,这个二维数组中有三个一维数组,三个一维数组都没有被赋值
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
arr[0] = new int[3]; //第一个一维数组中可以存储三个int值
arr[1] = new int[5]; //第二个一维数组中可以存储五个int值
System.out.println("------------------");
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
-
图解
【3】int[][] arr = {{1,2,3},{4,5},{6,7,8,9}};
class Demo4_Array {
public static void main(String[] args) {
int[][] arr = {{1,2,3},{4,5},{6,7,8,9}}; //这是一个二维数组,这个二维数组中每个大括号都代表一个一维数组
System.out.println(arr); //[[I@19bb25a,二维数组的地址值
System.out.println(arr[0]); //[I@da6bf4,一维数组的地址值
System.out.println(arr[0][0]); //1,一维数组中的元素值
}
}
-
图解