我初始化后如何设置数组元素?

时间:2016-06-27 05:32:22

标签: java arrays initialization

我正在寻找一种在初始化后设置数组元素的简单方法。我试过这个:

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给出的答案就是我所寻找的!

5 个答案:

答案 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 [])