1. 概念
一组连续的存储空间,存储多个相同类型的值。
特点:1.类型相同;2.长度固定。
2. 如何创建数组(4种方式)
① int[] nums = new int[3];
② int[] nums; nums[] = new int[5];
③ int[] nums = new int[]{1,2,3,4,5};
④ int[] nums = {1,2,3,4,5}; //显示初始化,不可换行
3. 如何使用数组
a) 数组中的每个数据格被称为“数据元素”;
b) 对每个元素进行赋值或者取值的操作被称为“元素的访问”;
c) 访问元素时,需要使用下标。
关于下标:
① 下标从0开始,依次+1,自动生成;
② 下标范围:0 ~ 数组长度+1;
③ 访问无效下标时,导致数组下标越界(即ArrayIndexOutOfBoundsException);
④ 访问语法:数组名[下标];
4. 数组的遍历
从头至尾,逐一对数组的每个元素进行访问。
数组名.length //可动态获取数组长度
for(int i = 0;i < nums.length;i++){
System.out.print(nums[i] + "\t");
}
5. 默认值
整数 0
小数 0.0
字符 \u0000
布尔 false
字符串 null
6. 数组的扩容
a) 创建数组时,必须显示指定长度,创建后长度不可更改;
b) 创建大于原数组长度的新数组,将原数组值复制到新数组中。
7. 复制的方法
a) 循环,将原数组中的值一一赋值给新数组;
b) System.arraycopy(原数组,原数组起始位置,新数组,新数组起始位置,原数组长度);
System.arraycopy(nums,0,newNums,0,5);
c) java.util.Arrays.copyOf(原数组,新长度); //返回带有原值的新数组
int[] nums = {1,2,3,4,5};
int[] newNums = java.util.Arrays.copyOf(nums, 10);
for(int i = 0;i < newNums.length;i++) {
System.out.print(newNums[i] + "\t");
}
8. 地址替换
a) 基本数据类型,存储在栈中(基本数据类型的变量中,直接存储的是“值”);
b) 引用数据类型存储在堆中(引用数据类型的变量中,存储的是堆中“地址”);
c) nums = newNums; //地址替换,将新数组的地址,赋值给nums变量,进而在后续操作nums时,操作长度更大的新数组。