容器下的人儿呀, 你为何如此不变
数组
语法:
数组元素类型[] 数组名;
定义:
存放相同类型的多个常量, 并且有序的
初始化
用意:
定义数组之和, 是不能直接去使用, 因为没有初始化, 初始化才表示在堆内存分配了存储空间
静态初始化
语法:
数组元素类型[] 数组名 = new 数组元素类型[]{ 元素1, 元素2, 元素3.....}
定义:
直接为每一个数组元素设置初始值, 而数组的长度由JVM来决定
动态初始化
语法:
数组元素类型[] 数组名 = new 数组元素类型[length(数组长度)]
元素初始化默认值:
byte, short, int, long: 0
float, double: 0.0
char: 一个空字符(空格), 即'\u0000'
引用数据类型: null(表示不引用任何对象)
注意:
数组一旦初始化成功, 数组的长度是固定的, 不能更改, 除非重新初始化
数组操作
1.获取数组的长度
语法:
int size = 数组名.length
定义:
数组有几个元素
2.获取元素值
语法:
数组元素类型 变量名 = 数组名[index];
注意:
index(索引): 也可以称为脚标, 从0开始, 索引的范围是[0, 数组名.length - 1]
3.设置元素值
语法:
数组名[index] = 值;
定义:
把某个值位置给哪一个数组值的一个位置
4.迭代数组
用意:
获取数组的每一个元素
1. for循环
2. for-each(for增强版, 其实底层依然使用的是for循环+索引的方式去获取元素)
语法:
for(元素类型 变量名 : 数组名 ){ 循环体 }
两种方法使用情况:
如果仅仅是需要操作元素, 首选for-each; 如果需要操作数组的索引, 选用for
常见异常
NullPointerException: 空指针异常(操作了一个引用为空的数组)
ArrayIndexOutBoundsException: 数组索引越界异常(操作数组的索引不在[0, 数组长度-1]范围之内
二维数组
静态初始化语法:
数组元素类型[][] 数组名 = new 数组元素类型[][]{ 数组1, 数组2, 数组3.....}
动态初始化语法:
数组元素类型[][] 数组名 = new 数组元素类型[x][y]
注意:
二维数组中的元素类型是一维数组, 把数组元素类型[]看成一个整体, 表示数据类型
网友评论