我正在学习Java,但是我在文档中没有看到有关此的任何内容。是否可以只用一行这样的不同字符串初始化数组的一部分:
String[] anArray = new String[20] {"water", "shovel", "berries", "stick", "stone", "seed", "axe"};
仅填充数组中的7个空格,其余的可以稍后初始化吗?这可能吗?我发现手动填充每个空间anArray[i]
很麻烦。由于代码中其他原因,我也不想使用ArrayList。
帮助表示感谢!
答案 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";
...