数组初始化
- 定义
- Java中数组必先初始化才能使用
- 所谓初始化就是给数组元素分配内存, 并为每个元素赋初始值
- 初始化方式
- 静态初始化
- 自定义数组元素初始值, 而数组长度由系统 ( JVM ) 决定
数组元素类型[] 数组名 = new 数组元素类型[]{元素1, 元素2, 元素3,.......}; int[] nums = new int[]{1,3,5,7,9}; 简单写法,必须声明之后,立刻初始化,不能先声明后初始化: int[] nums = {1,3,5,7,9};```
- 动态初始化
动态初始化操作
- 设置数组的元素个数(数组长度), 每个数组元素的初始值由系统决定
数组元素类型[] 数组名 = new 数组元素类型[length]; int[] ages = new int[100]; int[] nums = new int[5]{1,3,5,7,9};//写法是错误的,不能同时使用静态初始化和动态初始化
- 注意
事先知道, 需要存储哪些数据, 选静态初始化
-
事先不知道, 需要存储哪些数据, 只能使用动态初始化
- 无论哪种方式初始化数组, 一旦初始化完成, 数组长度就固定不可改变, 除非重新初始化
- 数据是定长的: 数组一旦初始化成功, 数组中的元素个数就固定不可改变, 如需更改, 须重新初始化
数组的动态初始化操作
定义: 设置数组的元素个数(数组长度), 每个数组元素的初始值由系统决定
-
语法
数组元素类型[] 数组名 = new 数组元素类型[length] int[] ages = new int[6]; int[] nums = new int[5]{1,3,5,7,9};//写法是错误的,不能同时使用静态初始化和动态初始化
-
使用注意
- 事先知道, 需要存储哪些数据的时候, 选用静态初始化
- 事先不知道, 需要存储哪些数据的时候, 只能使用动态初始化
数组
- 数组的基本操作
- 获取元素
元素类型 变量 = 数组名[索引];
- 设置元素
数组名[index] = 值;
- 数组长度
int len = 数组名.length
- length不是属性, 是方法
- 索引范围: 从0开始, 逐一递增 [0, 数组名.length-1]
- 获取元素
- 操作数组常见异常
-
NullPointerException
: 空指针 / 空引用异常-
当数组未初始化, 就直接操作数组
String[] bs = null; System.out.println(bs.length); // bs[0]一样的异常
-
-
ArrayIndexOutOfBoundsException
: 数组的索引越界异常
-
- 练习
- 获取数组最大最小元素
- 打印数组元素
- 逆序排列数组元素
- 元素出现索引(第一次/最后一次), 线性搜索