引用类型数组
2021-03-25 本文已影响0人
Amy木婉清
image.png
image.png
image.png
基本类型数组赋值
image.png
image.png
image.png
数组是对象
在Java中,数组属于引用类型数据
数组数据在堆中存储,数组变量属于引用类型,存储数组对象的地址信息,指向数组对象。
数组的元素可以看成数组对象的成员变量(只不过类型全都相同)
image.png
基本类型数组的图:
image.png
基本类型数组赋值
int[] arr = new int[3];
arr[0] = 100;
引用类型数组的声明
数组的元素可以是任何类型,当然也包括引用类型
AirPlane[] as = new AirPlane[4];
image.png
引用类型数组的初始化
引用类型数组的默认初始值为null
如果希望每一个元素都指向具体的对象,需要针对每一个元素进行"new’"运算
//方式1
AirPlane[] as = new AirPlane[4];
as[0] = new AirPlane[];
as[1] = new AirPlane[];
as[2] = new AirPlane[];
as[3] = new AirPlane[];
//方式2
AirPlane[] as ={
new AirPlane(),
new AirPlane(),
new AirPlane(),
new AirPlane()
};
image.png
引用类型数组赋值,需要new
//1)引用类型数组
Student[] stus = new Student[3];//创建Student数组对象
stus[0] = new Student("zs",25,"LF");//创建Student学生对象
stus[1] = new Student("ls",18,"JMS");
stus[2] = new Student("zl",16,"HG");
System.out.println(stus[0].address);//输出第一个学生对象的地址
//方式二
Student[] stus = new Student[]{
new Student("zs",25,"LF"),
new Student("ls",18,"JMS"),
new Student("zl",16,"HG")
};
//声明int型数组arr,包含3个元素;每个元素都是int[]型,默认值为null
int[][] arr = new int[3][];//数组的数组
arr[0] = new int[2];//第一个元素包含两个元素
arr[1] = new int[3];
arr[2] = new int[2];
//给arr中第二个元素的第一个元素赋值为100
arr[1][0] = 100;
/***
arr------------------------int[][]
arr[0]---------------------int[]
arr[0][0]------------------int
***/
//3为arr的长度,4为arr中每个元素的长度
int[][] arr = new int[3][4];//3行4列
for(int i= 0;i<arr.length;i++){
for(int j=0;j<arr[i].length;j++){
arr[i][j]=100;
}
}
引用类型数组的图
image.png
数组的类型是基本类型数组
数组的元素可以为任意类型也包括数组类型
int[][] arr = new int[3][];//数组的数组
arr[0] = new int[2];//第一个元素包含两个元素
arr[1] = new int[3];
arr[2] = new int[2];
arr[1][1] = 100;
arr指向一个数组,该数组有三个元素,每个元素都是int型数组,长度分别为2,3,2,如下图:
image.png
对于元素为数组的数组,如果每个数组元素的长度相同,可以采用如下方式声明
int row = 3,col = 4;
int[][] arr = new int[row][col];
for(int i =0;i<row;i++){
for(int j=0;j<col;j++){
arr[i][j]=0;
}
}
上述数组可以用来表示类似"矩阵"这样的数据结构。arr[i][j]可以认为访问行号为i,列号为j的那个元素,。在其他的语言中称二维数组,但Java语言中没有真正的二维数组。结构图如下图所示:
image.png