引用类型数组

2021-03-25  本文已影响0人  Amy木婉清
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
上一篇 下一篇

猜你喜欢

热点阅读