为什么不能一次初始化几个数组?

时间:2019-02-07 10:12:41

标签: java arrays

我试图用随机数填充数组,但是IDE甚至不能使用单个数组。数组初始化出了点问题。根据Schildt的Java SE 8指南,可以像我一样创建几个数组,但是如果我尝试对其中的任何一个进行操作,则会收到如下所示的错误。

如果仅初始化1个数组,则不会出错。但是,如果我需要使用许多数组,应该如何初始化它们?逐一?我在C ++中还没有遇到过这样的事情。

我知道创建2D数组更好,但是现在我要练习一些1D数组。

P.S:如果您不介意的话,还有一个问题。是否有可能索引这些数组以便稍后在循环内对其进行操作。也许在枚举的帮助下还是什么?

public static void main(String[] args) {

    int [] a,b,c,d,e,f,g,h,i = new int[4];
    //int a[],b[],c[],d[],e[],f[],g[],h[],i[] = new int[4]; - this doesn't work either
    Random random = new Random();

        for (int y=0; y<4; y++) {
            a[y] = random.nextInt(9); //The local variable a may not have been initialized
            System.out.print(a[y] + " "); //The local variable a may not have been initialized
        }   
}

2 个答案:

答案 0 :(得分:1)

好吧,如果您有固定数量的“ length 4 int arrays”,则可以创建一个2D数组,而不是多个长度为4的1D数组。 看起来像这样:

int[][] a = new int[9][4] 
//here 9 is the ammount of arrays you tried to create above, and 4 is the initial length

答案 1 :(得分:0)

如果您写类似

int a, b = 5;

只有b会被初始化。

但是您可以做的是

int a, b;
a = b = 5;

并且两者将使用相同的值初始化。现在,当您对数组执行相同操作时,

int[] a, b;
a = b = new int[4];

实际上,它们实际上指向同一实例/引用,这毫无意义。