数组
定义
存储在一个连续的内存块中的**相同数据类型(包括引用数据类型)**的元素集合。
声明
int[] a = {a,b,c} ; //第一种方式,需要写明数组所有元素
int[] a = new int [n];//第二种方式,不需要写明元素,需要数组长度。
赋值
基本数据类型赋值方式为值拷贝。
引用类型赋值方式为引用传递,赋的值是地址。
数组常用操作
- 数组遍历 for each 循环 “ for(循环变量类型 循环变量名称 : 被遍历的对象) 循环体”,注意此时 i 得到数组元素,而不是索引。
int[] a = {1, 2, 3, 4};
for (int i : a) {
System.out.println(i);
}
-
数组翻转:1.定义新数组,反向赋值,再正向赋值 2.通过临时变量,依次交换首尾两个变量
-
数组排序:Arrays.sort(arr);使用的是快速排序
-
数组的两种复制方式
//1
System.arraycopy(源数组,源数组起始下标,目标数组,目标数组起始下标,复制的元素个数);
//2,若目标数组大于源数组长度,末尾补默认值
// 若目标数组长度小于源数组,则将末尾的截掉
int[] 目标数组 = Arrays.copyOf(源数组,目标数组的长度);
- 数组的扩容:
int[] a = Arrays.copyOf(a,a.length+1);//创建一个更大的数组,把a的值复制过去
- 数组的打印:
Arrays.toString(arr)
;
引用类型数组
-
数组元素为引用类型的数组,即为引用类型数组。
-
与元素为基本类型的不同:
- 引用类型数组赋值需要先创建一个对象
- 访问引用类型数组元素的属性/行为时,需要打点访问
-
null:表示空,没有指向任何对象,若引用的值为null,就会发生NullPointerException