我正在寻找一种在初始化后设置数组元素的简单方法。我试过这个:
package com.ehsan.app;
public class Main {
public static void main(String[] args) {
int[] test = new int[6];
test = {1,2,3,4,5};
}
}
然而,编译它会产生错误:
Error:(7, 16) java: illegal start of expression
Error:(7, 17) java: not a statement
Error:(7, 18) java: ';' expected
Error:(9, 1) java: class, interface, or enum expected
我可以用这种方式将值放在数组中:
test[0] = 1;
test[1] = 2;
test[2] = 3;
test[3] = 4;
// and so on.
我只是想找一个简单的方法来做到这一点。
修改
我知道我可以用这个:
int[] test = {1,2,3,4};
但我想要的是一种在初始化后将值放入数组的简单方法。
还有一件事:我不是在寻找循环!
<小时/> 的修改
@Python给出的答案就是我所寻找的!
答案 0 :(得分:0)
如果要初始化数组,请尝试使用数组Initializer:
int[] test = new int[6];
int[] test = {1,2,3,4,5,6};
或强>
int[] test = new int[]{1,2,3,4,5,6};
答案 1 :(得分:0)
初始化后,您无法一次性分配值, 你可以这样做:
test[0]=1;
test[1]=2;
同样.. 希望这会有所帮助
答案 2 :(得分:0)
使用for循环初始化:
for(int i=0;i<test.length-1;i++){
test[i]=i;
}
这将使测试数组的内容为0,1,2,3,4,5;
答案 3 :(得分:0)
我相信除了有一个循环来填充已经实例化的数组之外别无他法。
但是,您不需要自己编写循环:
System.arrayCopy()
完成工作。有一天,JVM可能决定做memcpy
这样的工作,通过使用这种内置函数,您可以从这样的JVM更改中受益,而无需更改源代码。
答案 4 :(得分:0)
您可以通过在一行中使用Arrays的静态方法来完成此操作:
Integer[] test = new Integer[10];
Arrays.<Integer>asList(1,2,3,4,5,6,7).toArray(test);
注意:使用'int'也没关系,但是你可以添加显式的cast(int [])