-6

我可以像这样初始化字符串数组吗

String arr=new String[];/* initialize the array */
4

2 回答 2

8

不,因为您需要告诉编译器您希望数组有多大。请记住,数组在创建后具有固定大小。所以这些都可以,创建一个空数组:

String[] array = {};
String[] array = new String[0];
String[] array = new String[] {};

诚然,空数组很少有用。在许多情况下,您最好使用 anArrayList<String>代替。当然,有时您必须使用数组 - 例如,为了从方法返回值。

如果你想创建一个特定长度的数组,然后再初始化它,你可以指定长度:

String[] array = new String[5];
for (int i = 0; i < 5; i++) {
    array[i] = String.valueOf(i); // Or whatever
}

空数组的一个很好的特性是它们是不可变的——你不能改变长度,因为长度为 0,所以没有元素可以改变。因此,如果您定期使用特定类型的空数组,则只需创建一次:

private static final String[] EMPTY_STRING_ARRAY = {};

...并在任何地方重复使用。

于 2013-01-31T07:14:59.793 回答
0

不,你不能那样做。它会产生你应该写的编译错误

String[] arr=new String[4];  //you should declared it sized

或者

String[] arr={"asgk"};

或者

String[] arr=new String[]{};
于 2013-01-31T07:37:32.000 回答