为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

BIG阳 2022-06-08 17:39:26
我正在尝试用随机数填充数组,但即使使用单个数组,IDE 也拒绝工作。数组初始化有问题。根据 Schildt 的 Java SE 8 指南,可以像我一样创建几个数组,但是如果我尝试对其中的任何一个做一些事情,我会收到如下所示的错误。如果我只初始化 1 个数组,我不会收到任何错误。但是,如果我需要使用许多数组,我应该如何初始化它们?逐个?我在 C++ 中没有遇到过这样的事情。我知道创建 2D 数组更好,但我现在有一个练习来处理一些 1D 数组。PS:如果你不介意,一个额外的问题。是否可以索引这些数组以便稍后在循环中操作它们。也许在枚举或什么的帮助下?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 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

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


int[][] a = new int[9][4] 

//here 9 is the number of arrays you tried to create above, and 4 is the initial length


查看完整回答
反对 回复 2022-06-08
?
潇湘沐

TA贡献1816条经验 获得超6个赞

如果你写类似


int a, b = 5;


只有 b 将被初始化。


但是,您可以做的是


int a, b;

a = b = 5;

两者都将使用相同的值进行初始化。现在当你对数组做同样的事情时,所以


int[] a, b;

a = b = new int[4];

他们实际上会指向同一个实例/引用,这显然没有任何意义。


查看完整回答
反对 回复 2022-06-08
  • 2 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信