创建一个数字数组时,所有元素都初始化为0。boolean数组的元素会初始化为false。对象数组的元素则初始化为一个特殊值null。
一旦创建了数组就不能改变它的大小。如果经常需要在运行过程中扩展数组的大小,就应该使用array list。
for each循环语句更简洁并且不必为下标的起始值和终止值而操心。
Java提供了一种创建数组对象同时赋予初始值的简化书写形式。
int [] smallPrimes={1,2,3,4};
在使用这种语句时,不需要调用new。
还可以初始化一个匿名的数组:
new int[] {5,6,7,8};
这种表示法将创建一个新数组并利用括号中提供的值进行初始化,数组的大小就是初始值的个数。使用这种语法形式可以再不创建新变量的情况下重新初始化一个数组。例如:
smallPrimes = new int[] {5,6,7,8};
↑这是下列语句的简写形式:
int[] anonymous = {5,6,7,8};
smallPrimes = anonymous;
在Java中允许数组长度为0。
数组拷贝
在Java中允许将一个数组变量拷贝给另一个数组变量。这时,两个变量将引用同一个数组:
int[] luck = small;
luck[5] = 12; //此时small[5]也为12
如果希望一个数组的所有值拷贝到一个新的数组中去,就要使用Arrays类的copyOf方法:
int[] copy = Arrays.copyOf(luck,luck.length);
第二个参数是新数组的长度,这个方法通常用来增加数组的大小:
luck=Arrays.copyOf(luck,2*luck.length);
如果数组元素是数值型,那么多余的元素将会被赋值为0,如果数组元素是布尔型,则将赋值为false。相反如果长度小于原始数组长度,则只拷贝最前面的数据元素。
想要对数值型数组进行排序可以使用Arrays类中的sort方法,这个方法使用了优化的快速排序。