为什么要有数组(容器)?
为了存储同种数据类型的多个值
什么是数组?
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
数组既可以存储基本数据类型,也可以存储引用数据类型。
索引:
我们通过数组的索引去取里面的元素,注意的是,数组的索引从0
开始,所以索引的范围就是0
~ 数组长度-1
怎么定义数组?
动态初始化的格式:数据类型[] 数组名 = new 数据类型[数组的长度];
静态初始化的格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…}; 简化为 数据类型[] 数组名 = {元素1,元素2,…};
初始化:
什么是数组的初始化,就是为数组开辟连续的内存空间,并为每个数组元素赋予值。初始化又根据定义数组的格式不同,分为动态初始化(只指定长度,由系统给出初始化值)和静态初始化,(给出初始化值,由系统决定长度 )
数组的默认值:
动态初始化数组的默认值:整数类型的:byte,short,int ,long默认初始化值都是0
浮点数类型: float,double默认初始化值都是0.0
布尔类型:默认初始化值为false
char :默认为‘\u0000’
动态初始化之后我们可以通过数组名[索引] = 值,修改里面的值。达到存储我们需要的数据的目的
注意:
访问数组的时候,注意索引是否越界。如果越界会报异常 。会报* b:NullPointerException:空指针异常
数组已经不在指向堆内存了。而你还用数组名去访问元素。*会报:NullPointerException:空指针异常
二维数组:
我们可以理解为,一个数组里的元素也是一个数组
二维数组格式
- 数据类型 数组名[][] = new 数据类型[m][n] //动态初始化
- 数据类型 [][] arr = {{1},{2},{3 }}; // 静态初始化
详解:int[][] arr = new int[3][5];---定义了一个整型的二维数组,其中包含3个一维数组,每个一维数组可以存储5个整数
arr[0]---下标为0的位置上的一维数组
arr[1][3]---要获取下标为1的位置上的一维数组,在获取这个一维数组里面下标为3的元素