数组是引用类型,声明数组并没有分配空间,则该数组变量的值为null。
类型[] 数组名;
如:double[] data;
二、创建数组
类型[] 数组名=new 类型[长度];
数组创建,数组里面的元素会被赋值,数值型基本数据类型的默认赋值为0,char类型的默认值为‘\u000’,boolean型的默认值为false。
三、初始化数组
数组初始化语句
类型[] 数组名={value0,value1,…};
数组初始化语句必须在数组声明,创建时使用。
类型[] 数组名=new 类型[]{value0,value1,…};
类型[] 数组名=new 类型[长度]{value0,value1,…}; //长度必须与花括号里面数据的个数一致
new String[0]创建数组,数组的长度为0的空数组。
没有命令行输入时,main函数的args是对空数组的引用,而不是null。args.length为0。
四、数组复制
数组复制有三种方法
1) 使用循环语句逐个复制
2)System类中的静态方法arraycopy
arraycopy(souceArray,srcPos,targetArray,soucePos,length);
souceArray 源数组
srcPos 源数组开始复制下标
targetArray 目标数组
soucePos 目标数组开始保存下标
length 复制的长度
3)使用clone方法复制数组
int[] a={1,2,3};
int[] b=a.clone();
五、Arrays类
java.util.Arrays类包括许多静态方法
sort或者parallelSort方法对数组或部分数组进行排序。
例如:
Arrays.sort(a);
Arrays.parallelSort(a);
Arrays.sort(a,1,3); //对数组a[1]到a[3-1]进行升序排列
Arrays.parallelSort(a,1,3); //parallelSort方法多处理器时效果更好
bianrySearch 数组必须升序排序好才能使用
例如: Arrays.binarySearch(a,11);
equals检测两个数组是否相等
例如: Arrays.equals(a,b);
fill方法填充整个数组或部分数组
例如:
Arrays.fill(a,5); //整个数组填充5
Arrays.fill(a,1,3,5); //数组a[1]到a[3-1]填充5
六、二维数组或者更高维数组定义
类型[][] 数组名=new 类型[长度1][长度2]; //长度2可以不写,代表定义一维数组的数组。数组定义是必须指定第一个下标
二维数组其实是一个数组,它的元素是数组。各行的长度可以不同。
数组名.length获取数组的长度。
七、可变参数列表
类型 函数名(类型名…参数名)
java将可变参看作数组对待,一个数组或可变的参数传递给可变参数。
如:
-
int method(int … data){
-
data[
0]=
2;
-
}
-
int[] a={
1,
2,
3};
-
method(a);
-
method(
1,
2,
3);
八、foreach迭代
for(类型 value:数组或者集合){
// value是集合或者数组的一个个元素
}
foreach迭代的效率比普通的for循环要高