数组的概念:
1.数组是存储同一种数据类型多个元素的集合,可以当作一个容器。
2.数组既可以存储基本数据类型,也可以存储引用数据类型。
一维数组
数组定义的基本格式:
格式一:数据类型[] 数组名;
格式二:数据类型 数组名[];
数组初始化概述:
java数组必须要先初始化,然后才可以使用
所谓的初始化,就是为数组中的数组元素分配内存,并且为每个元素赋值
数组初始化的方式:
1.动态初始化:
1.定义:初始化时只指定数组长度,由系统为数组初始化值。
2.格式:数组类型[] 数组名 = new 数组类型[数组长度];(数组长度就是数组的元素个数)
int[] array = new int[3]; //数组类型是int,存储的元素个数是3个。
2.静态初始化:
1.定义初始化时指定每个元素的初始值,由系统决定数组长度。
2.格式:数组类型[] 数组名 = new 数据类型{element1,element2......}
int[] array = new int[]{1,2,3} //定义的数组是int类型 元素的个数是三个
简化写法:int[] array = {1,2,3}
数组元素索引、赋值及修改
数组具有索引下标的功能,可以通过索引下标来获取、添加、修改数组的元素值。
从左向右从零开始,依次增加。最大索引值是 index= 数组的长度 - 1;
System.out.println(arr[0]); // 获取第一个元素值
通过索引 ,可以给数组元素赋值
int[] arr = new int[3] //定义一个长度为3的一维数组
通过索引给元素赋值
int[0] = 1;
int[1] = 2;
int[2] = 3;
这个时候数组就是 int[] arr = {1,2,3}
通过索引,可以修改数组的元素
int[] arr = {1,2,3} //定义一个数组 这个数组元素是{1,2,3}
arr[1] = 0; //将元素2(索引值为1)修改为0;
//修改后的数组为 {1,0,3}
二维数组
概述:
二维数组本质上就是一个元素为一维数组的数组.
二维数组的格式
格式一:数据类型[][] 数组名 =new 数据类型[m][n]
m 表示二维数组中有多少个一维数组
n 表示每一个一维数组的元素个数
int[][] arr = new int[3][2];
//二位数组数据类型是int,并且存储3个长度为2的一维数组的数组
//eg int[][] arr ={{1,2},{3,4},{5,6}}
格式二: 数据类型[][] 数组名 =new 数据类型[m][]
m 表示可以存储m个一维数组
int[][] arr = new int[3][];
//创建可以存储3个一维数组的二维数组 其中一维数组的长度不确定 且一维数组长度不要求相同
//eg int[][] arr = {{1,3},{5,6,8},{8}}
格式三: 数据类型[][] 数组名 = new 数据类型[][]{{element},{element}....}
int[][] arr = new int{ {1,5,7} , {8,4} , {12} }
//创建了可以存储3个一维数组的数组 其中一维数组的长度可以不同
数组的一些特性:
特点:
1.一旦创建,大小固定
2.同一个数组 ,元素的数据类型一样
3.具有索引下表的概念,将来可以通过索引来获取元素
4.数组查询快 但是增删比较慢
长度属性:length
可以使用 数组名.length 来获得数组的长度
使用数组会遇到的小问题
数组索引越界
ArrayIndexOutOfBoundsException 访问了数组不存在的索引
空指针异常
NullPointerException 数组引用没有指向实体,却在操作实体中的元素时。