使用值填充数组

时间:2015-12-13 10:51:29

标签: java arrays

我100%肯定这已经有了答案,但我找不到它......

我创建了一个数组并指定了它的长度。后来我想用值填充它,但我不能使用

array = {1, 2, 3, 4}

语法了。数组中的值没有模式,因此无法将它们放入for循环中

for(i=0;i<array.length;i++){
     array[i] = someValue[i]
}

我可以避免为每个i手动写出array [i] = someValue吗?基本上,有什么类似的

array = {1,2,3,4}

我可以使用,我只在一行填充数组?如果这可能非常不清楚,请告诉我,我会发布我正在使用的实际代码。

3 个答案:

答案 0 :(得分:4)

您可以使用此

array = new int[]{1,2,3,4};

答案 1 :(得分:2)

只是澄清一下,当您array = new int[]{1, 2}; in this commentthis answer时,它会创建一个 new 数组,丢弃array的数组最初指出。

没有错,但请注意,首先“创建数组并指定其长度”是多余的,如你所说;原始数组只是垃圾收集。因此,将字段/变量简单地声明为int[] array;而没有初始值更有意义。

另一方面,如果你出于某种原因特意想要重复使用你的原始数组对象,用后面提出的值填充它,我想一​​般来说你必须去循环并“手动”分配给array[i]。但有一个例外:要使用相同的值填充数组(或其中的一部分),您可以使用内置的Arrays.fill()实用程序。例如:

int[] array = new int[5];
Arrays.fill(array, 1);
// array now contains [1, 1, 1, 1, 1]           

// Only fill a specified range:
int[] array2 = new int[10];
Arrays.fill(array2, 3, 7, 2);
// array2 now contains [0, 0, 0, 2, 2, 2, 2, 0, 0, 0]

答案 2 :(得分:1)

您需要使用以下命令重新初始化数组:

array = new int[] { 1, 2, 3, 4 } 

您不能在赋值中使用Array Initializer语法,只有在初始化数组时才允许使用。{/ p>