我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}
我可以使用,我只在一行填充数组?如果这可能非常不清楚,请告诉我,我会发布我正在使用的实际代码。
答案 0 :(得分:4)
您可以使用此
array = new int[]{1,2,3,4};
答案 1 :(得分:2)
只是澄清一下,当您array = new int[]{1, 2};
in this comment和this 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>