Java中的双重数组初始化

新手上路,请多包涵

我在阅读一本关于 Java 的书时遇到了一个示例,其中以我以前从未见过的方式初始化了一个双精度类型的数组。它是什么类型的初始化,它还能用在哪里?

 double m[][]={
    {0*0,1*0,2*0,3*0},
    {0*1,1*1,2*1,3*1},
    {0*2,1*2,2*2,3*2},
    {0*3,1*3,2*3,3*3}
};

原文由 Prateek 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 586
1 个回答

这是 _数组初始化语法_,它只能在声明数组类型变量时用在右侧。例子:

 int[] x = {1,2,3,4};
String[] y = {"a","b","c"};

如果您不在变量声明的 RHS 上,请改用数组构造函数:

 int[] x;
x = new int[]{1,2,3,4};
String[] y;
y = new String[]{"a","b","c"};

这些声明具有完全相同的效果:使用指定的内容分配和构造一个新数组。

在您的情况下,以编程方式指定表实际上可能更清楚(重复性较低,但简洁度较低):

 double[][] m = new double[4][4];

for(int i=0; i<4; i++) {
    for(int j=0; j<4; j++) {
        m[i][j] = i*j;
    }
}

原文由 nneonneo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题