1.数组动态初始化(声明并开辟数组):数据类型[] 数组名称=new 数据类型[长度];
例:
int[] x=new int[3];
数组开辟空间后:
(1)数组的访问通过索引完成(数组的索引从0开始),访问超过索引访问会产生”java.lang.ArrayIndexOutOfException”异常信息。
(2)动态初始化开辟空间后 ,数组的每个元素都是该数据类型的默认值。
(3)数组是一个有序集合操作,对于数组的内容操作采用循环的模式完成。
(4)动态取得数组长度的方法:数组名称.length。
分步数组实例化:
int[] x=null;
x=new int[3];
数组为引用数据类型,使用前一定要实例化,否则产生异常:NullPoninterException
2.引用传递(数组为引用数据类型):
一块栈内存只能保存一块堆内存地址。
同一块堆内存空间可以被不同的栈内存所指向。
3.数组静态初始化:
数据类型[] 数组名=new 数据类型[] {值,值,….}
例:
int[] x={1,2,3,4,5};
数组最大的缺陷:长度固定(存在数组越界问题)。
4.二维数组:
动态初始化:数据类型[][]
对象数组=new 数据类型[行个数][列个数];
例:int[][] x=new int[3][4];
静态初始化:数据类型[][]
对象数组=new 数据类型[][]{{值,值,….}, {值,值,….},….};
例:
int[][] x=new int[][]{{1,2,3},{4,5},{6,7,8,9}};
5.实现数组排序:
(1)选择排序
(2)冒泡排序
(3)二分查找:数组有序 Array.sort(array),只要是基本数据类型的数组,sort方法都可以进行排序处理(升序)。内部舒勇双轴快速排序。
(4)数组插入法
6.实现数组拷贝:
(1)System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度);
(2)Arrays.copyOf(源数组名称,新数组长度)
(3)使用clone:array2=array.clone();
(4)使用for循环
上面三种数组拷贝方法对于基本类型来说都是深拷贝,对于引用类型来说都是浅拷贝。
7.对象数组:(引用数据类型为主的定义:类,接口)
语法:类名称[] 对象数组名称=new 类名称[长度];
例:
Person[] per=new Person[3];