Java数组----引用数据类型,必须在使用前先初始化;否则会nullPointerException(运行时异常)。
(引用传递:多个栈内存指向同一块堆内存)
1.一维数组初始化
(1)动态初始化(声明并开辟数组)
数据类型[] 数组名称 = new 数据类型[长度];
如:声明并开辟一个长度为5的整型数组:int[] data = new data[5];
注:
// JDK1.5 提供for-each循环。 for(int x: data){...}
(2)静态初始化
简化格式:数据类型[ ] 数组名 = {值,值,...};
完整格式(推荐):数据类型[ ] 数组名 = new 数据类型[ ] {值,值,...};
eg:int[ ] data = new int[ ] {1,3,5,7,9,10};
注:在数组定义时,直接设置内容,根据值的个数确定数组长度,且长度不可修改。
匿名数组:System.out.println(new int[]{1,3,5,7,9,10}[1]);
2.二维数组初始化
(1)动态初始化
数据类型[ ][ ] 数组名称 = new 数据类型[行个数][列个数]
eg:int[ ][ ] data = new int[3][4]; //开辟行数3列数4的整型数组
(2)静态初始化
数据类型[ ][ ] 数组名称 = new 数据类型[ ][ ]{{第一行的值},{第二行的值},...}
3.数组与方法的互操作--引用传递
(1)方法接收数组
(2)方法返回数组
public static int[] init(){
return new int[]{1,2,3};
}
(3)方法修改数组
4.java对数组的支持(应对笔试,可以直接调用)
(1)排序-----java.util.Arrays.sort(数组名称);
支持所有基本数据类型数组。
内部使用双轴快速排序√
(2)数组部分拷贝
System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度);
(3)数组全拷贝(*****)