在Java中初始化数组的一部分

时间:2018-06-22 23:26:55

标签: java arrays initialization partial

我正在学习Java,但是我在文档中没有看到有关此的任何内容。是否可以只用一行这样的不同字符串初始化数组的一部分:

String[] anArray = new String[20] {"water", "shovel", "berries", "stick", "stone", "seed", "axe"};

仅填充数组中的7个空格,其余的可以稍后初始化吗?这可能吗?我发现手动填充每个空间anArray[i]很麻烦。由于代码中其他原因,我也不想使用ArrayList。

帮助表示感谢!

4 个答案:

答案 0 :(得分:3)

不,您无法以尝试的方式执行此操作。这是因为(根据docs 教程) 这种声明数组的方式:

String[] array = {"Apple", "Orange"};

是这样做的捷径:

String[] array = new String[2];
array[0] = "Apple";
array[1] = "Orange";

在本教程中,它介绍了第一种方法:

  

此处数组的长度由括号之间提供的值的数量确定,并用逗号分隔。

同时声明大小然后尝试执行声明array的快捷语法是无效的。 (给出的实际警告是:Cannot define dimension expressions when an array initializer is provided

答案 1 :(得分:2)

您可以执行以下操作,它将根据提供的内容创建具有新大小的数组。

    String[] temp = new String[] {"water", "shovel", "berries", "stick", "stone", "seed", "axe"};
    String[] val = Arrays.copyOf(temp, 20);

    System.out.println(val.length);
    System.out.println(Arrays.toString(val));

输出将是:

20
[water, shovel, berries, stick, stone, seed, axe, null, null, null, null, null, null, null, null, null, null, null, null, null]

答案 2 :(得分:1)

不可能这样,但是可以放null并在以后分配。

String[] arr = new String[] {"water", "shovel", "berries", "stick", null, null};

答案 3 :(得分:-2)

是的,有可能,但区别很小。

String anArray = new String[] {"water", "shovel", "berries", "stick", "stone", "seed", "axe"};

创建大小为7的数组

String anArray = new String[20];

创建大小为20的数组,然后可以对其进行初始化

anArray[0] = "water";
anArray[1] = "shovel";
...