1 数组的概述
1.1 数组的理解
数组(Array),是多个相同类型数据按照一定顺序排列的集合,并使用一个名字命名,通过编号的方式对这些数据进行统一管理。
1.2 数组相关概念
比如一维数组: int[] arr = new int[4];
比如二维数组:int[][] arr1 = new int[3][5];
① 数组元素的类型:int
② 数组的标识:[]
③ 数组名:arr,arr1
④ new :关键字
⑤ 角标、下标、索引:4(一维数组),3和5(二维数组,可以理解为3行5列的一组数据)
⑥ 数组的长度:元素的个数
1.3 数组的特点
① 数组是有序排列的
② 创建数组对象会在内存中开辟一整块连续的空间
③ 数组的长度一旦确定,就不能修改
④ 数组属于引用数据类型的变量。
⑤ 数组的元素可以是基本数据类型也可以是引用数据类型
1.4 数组的分类
2 一维数组
2.1 一维数组的声明和初始化
一维数组的声明和初始化可以分开进行,也可以同步进行,一般情况是同步进行的。
① 一维数组的声明和初始化分开进行的情况
② 一维数组声明和初始化同时进行(两种形式):静态初始化和动态初始化
.
2.2 如何调用一维数组指定位置的元素
格式:数组名[角标] ,如下图中的arr6[0]
2.3 怎样获取一维数组的长度
注:数组一旦初始化后,其长度就确定了,无法进行修改!
格式:数组名.length,如下图中的arr8.length
2.4 如何遍历一维数组
一维数组采用一层for循环便可以进行遍历
2.5 一维数组的默认初始化值
① 整型:byte、short、int、long默认初始化值均为0
② 浮点型:float、double默认初始化值均为0.0
③ char类型:默认初始化值为Ascll:0
运行结果:
④ boolean类型:默认初始化值为false
⑤引用数据类型:默认初始化值为null
2.6 一维数组的内存解析
3 二维数组
3.1 二维数组的声明和初始化
① 二维数组的声明和初始化分开进行
② 二维数组的声明和初始化同时进行:静态初始化和动态初始化
静态初始化格式:一般书写以格式1和格式2为准
格式1:元素类型[][] 数组名 = new 元素类型[][] {{元素1,元素2,...},{元素1,元素2}};
格式2:元素类型[][] 数组名 = {{元素1,元素2,...},{元素1,元素2}};
格式3:元素类型 数组名[][] = {{元素1,元素2,...},{元素1,元素2}};
格式4:元素类型[] 数组名[] = {{元素1,元素2,...},{元素1,元素2}};
动态初始化格式:一般书写以格式1和格式2为准
格式1:元素类型[][] 数组名 = new 元素类型[角标1][角标2];
格式2:元素类型[][] 数组名 = new 元素类型[角标1][];
格式3:元素类型 数组名[][] = new 元素类型[角标1][角标2];
格式4:元素类型[] 数组名[] = new 元素类型[角标1][角标2];
3.2 如何调用二维数组指定位置的元素
格式:数组名[角标1][角标2]:如下图中的arr02[0][1]
3.3 如何获取二维数组的长度
规定:二维数组元素分为外部元素和内部元素
①外部元素:如int[][] arr03 = new int[][]{{0,1,2},{3,4}};
其中,arr03[0]、arr03[1]等均属于外部元素
② 内部元素:其中,arr03[0][0]、arr03[2][1]等均属于内部元素
3.4 如何遍历二维数组
二维数组的遍历需要两层for循环
3.5 二维数组的默认初始化值
① 初始化方式一:如:int[][] arr05 = new int[5][4];
外层元素的默认初始化值为:地址,如arr05[0]
内层元素的默认初始化值为:同一维数组的初始化值等同
注:[I@15db9742,其中“[”表一维数组,“I”表示int,@后面的为地址
② 初始化方式二:如:int[][] arr06 = new int[5][];
外层元素的默认初始化值为:null,如arr06[0]
内层元素的默认初始化值为:不能调用,会报错