JavaSE笔记06 二维数组+数组练习题详解
文章目录
一.二维数组概述:
二维数组就是元素为1维数组的数组,二维数组其实就是每一个元素为一维数组的数组
对于二维数组的声明有如下:
int[][] arr;
String[][] students;
二.二维数组的初始化:
Java中的数组必须先初始化,然后才能使用,所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值
其中在之前有介绍过对于一维数组的初始化有动态初始化和静态初始化两种方法,同样在二维数组中也有动态初始化和静态初始化两种方法:
但是首先在初始化之前需要注意:
不管静态初始化还是动态初始化,第一维的长度必须确定!
1.动态初始化二维数组:
具体格式:
数据类型[][] 变量名 = new 数据类型[m][n]
m表示这个二维数组有多少个一维数组 必须写上
n表示每一个一维数组的元素个数 可选
举例:
int[][] arr = new int[3][2];
定义了一个二维数组arr
这个二维数组有3个一维数组,名称是arr[0],arr[1],arr[2]
每个一维数组有2个元素,可以通过arr[m][n]来获取
表示获取第m+1个一维数组的第n+1个元素
对于上面的格式还有两种定义格式供参考:
(1) 数据类型 数组名[][] = new 数据类型[m][n]
(2) 数据类型[] 数组名[] = new 数据类型[m][n]
但是这两种格式仅仅是满足定义语法,在实际中不建议
其次是初始化中的注意事项,注意下面定义的区别之处:
- int[] x,y[];
这句话定义了两个数组 一个是一维数组x 一个是二维数组y,所以不建议将两个二维数组的初始化放在一句话中,建议将上面的初始化定义写成如下格式:
x=new int[3];
y=new int[3][]; //3只是假定了一个长度
2.静态初始化二维数组:
具体格式:
语法格式:
数组名 = new 元素的数据类型[][]{ {元素1,元素2…},{元素1,元素2…}…}
当声明与静态初始化同时进行,可以简写:
元素的数据类型[][] 数组名 = { {元素1,元素2…},{元素1,元素2…}…};
即省略等号后面的new和数据类型
举例:
int mark=new int{ {100,200},{10,59,60},{50,3,555,666}}
String days={ {“4月1日”},{“10月1日”,“6月1日”},{“大年30”}}
3.初始化数组的内存演示:
[1]二维数组格式1的内存图解:
public class MyTest1 {
public static void main(String[] args) {
//动态初始化,定义二维数组
int[][] arr = new int[3][2];
System.out.println(arr[0]);
System.out.println(arr[0][0]);//0
System.out.println(arr[0][1]);//0
System.out.println(arr[1]);
arr[1][0] = 10;
arr[1][1] = 20;
System.out.println(arr[1][0]);
System.out.println(arr[1][1]);
System.out.println(arr[2]);
System.out.println(arr[2][0]);
System.out.println(arr[2][1]);
}
}