一、 数组
a) 变量:一种(一个)存储空间的表示
b) 数组概念:一种(一组)连续的存储空间的表示
c) 最大的优点:便于检索
d) 弱点:1、类型固定;2、长度固定;3、新增元素和删除元素的开销大
e) 语法
- 声明数组:数据类型[] 数组名称; 数据类型 数组名称[];
- 分配空间:数组名称 = new 数据类型[长度];
- 赋值:
- int[] arr = new int[10];
- arr: 代表数组中首元素的地址
- arr[n]: n代表的是步数,而int确定是步幅;
- arr[n] = 值;
- 使用
- arr[n] System.out.println(arr[n]*10);
f) 特殊情况:
问题处理 - int[] arr;
- int[] arr = null;
System.out.println(arr); 正常输出:null
System.out.println(arr[0]);
空 指针 异常
报出异常: java.lang.NullPointerException
//空指针异常处理
If(null != arr){
//代码块
} - int[] arr = new int[0];
System.out.println(arr[0]);
数组 下标 超出 界限 异常
报出异常:java.lang.ArrayIndexOutOfBoundsException
if(null != arr && arr.length>0){
//代码块
}
特殊的赋值
如果在声明数组时,数组元素的值是确定的:
int[] arr = {值1,…,值N};
int[] arr; arr = {值1,…,值N}; ×
int[] arr = new int[]{值1,…,值N };
int[] arr = new int[N]{值1,…,值N }; ×
int[] arr; arr = new int[]{值1,…,值N }; √
g) 数组的属性
- 长度:数组中元素的个数 int len = 数组名称.length;
- 下标:从0开始到arr.length-1结束的连续的自然数,否则会报出数组下标越界异常。
int[] arr = {3, 5, 8, 12, 27};
0 1 2 3 4
h) 随机数 - double value = Math.random(); value的取值范围 0<=value<1;