上QQ阅读APP看书,第一时间看更新
1.8.2 数组构造
当你使用new运算符构造数组时,它会使用默认值来填充数组:
● 数值类型(包括char)的数组用0填充;
● boolean数组用false填充;
● 对象数组用null引用填充。
警告:在构造对象数组时,需要用对象进行填充,示例如下:
BigInteger[] numbers = new BigInteger[100];
此时,数组中还没有任何BigInteger对象,只有100个null引用。需要将它们替换为对BigInteger对象的引用。
for (int i = 0; i < 100; i++) numbers[i] = BigInteger.valueOf(i);
如前一小节所述,也可以通过编写一个循环语句来用值填充数组。然而,如果知道数组元素确切的值,就可以直接在花括号内列出它们:
int[] primes = { 2, 3, 5, 7, 11, 13 };
如果不使用new运算符,也不指定数组长度,那么可以在末尾用逗号表示,这样可以方便随时添加数组值:
String[] authors = { "James Gosling", "Bill Joy", "Guy Steele", // Add more names here and put a comma after each name };
如果不想为数组指定名称,那么可以使用类似初始化的语法。例如,下面的示例将数组赋值给现有数组变量:
primes = new int[] { 17, 19, 23, 29, 31 };
注意:长度为0的数组是合法的。可以使用new int[0]或new int[]{}这种形式来构造一个数组。例如,如果一个方法返回一个匹配的数组,但是没有特定的输入,那么可以返回一个长度为 0 的数组。需要注意的是,长度为0的数组与null不同。如果a是长度为0的数组,那么a.length为0;如果a是null,则a.length将会导致NullPointerException异常。