Java多维数组布局

Java多维数组布局,java,arrays,Java,Arrays,我正在准备考试,这是关于多维java数组的内存分配 给出了以下代码: double [][] a = new double[4][]; for (int i = 0; i < 4; i++) a[i] = new double[4-i]; double[]a=新的double[4][]; 对于(int i=0;i

我正在准备考试,这是关于多维java数组的内存分配

给出了以下代码:

double [][] a = new double[4][];
for (int i = 0; i < 4; i++)
     a[i] = new double[4-i];
double[]a=新的double[4][];
对于(int i=0;i<4;i++)
a[i]=新的双[4-i];
我应该画这个数组的内存布局,但恐怕我还不完全理解它是如何工作的

如果您能告诉我如何将此数组作为列表打印到控制台,以便我可以查看,我将不胜感激。:)


谢谢您的时间。

您不必在for循环中创建新数组。试试这个:

    double[][] a = new double[4][3];
或者,您可以在一条语句中对其进行初始化,如:

    double[][] a = {
        {1, 3, 2}, 
        {4, 5, 6}, 
        {7, 8, 9}
    };
然后打印:

    System.out.println(Arrays.deepToString(a))

您不必在for循环中创建新数组。试试这个:

    double[][] a = new double[4][3];
或者,您可以在一条语句中对其进行初始化,如:

    double[][] a = {
        {1, 3, 2}, 
        {4, 5, 6}, 
        {7, 8, 9}
    };
然后打印:

    System.out.println(Arrays.deepToString(a))

由于数组
a
是数组的数组(2D),因此可以使用增强的for循环打印元素

因此,您的外部循环有
double[]
作为类型,因此声明。如果在另一个内部循环中迭代
a
,将得到类型
double

     double[][] a = {
        {1, 3}, 
        {4, 5}, 
        {7, 8}
    };
List<Double> dou = new ArrayList<Double>();

for (double[] k: a) {
    for (double element: k) {
        dou.add(element) ;
    }

}
System.out.println(dou);

由于数组
a
是数组的数组(2D),因此可以使用增强的for循环打印元素

因此,您的外部循环有
double[]
作为类型,因此声明。如果在另一个内部循环中迭代
a
,将得到类型
double

     double[][] a = {
        {1, 3}, 
        {4, 5}, 
        {7, 8}
    };
List<Double> dou = new ArrayList<Double>();

for (double[] k: a) {
    for (double element: k) {
        dou.add(element) ;
    }

}
System.out.println(dou);

我不确定这是否回答了你的问题

上图描述了数组元素将如何存储在内存中。

我不确定这是否回答了你的问题


上图描述了数组元素将如何存储在内存中。

对于打印部分,请查看Arrays.deepToString:()我不确定这是否回答了您的问题。上图描述了数组元素将如何存储在内存中。对于打印部分,请查看Arrays.deepToString:()我不确定这是否回答了您的问题。上图描述了数组元素将如何存储在内存中。感谢您向我解释语法。这很有帮助。不幸的是,我在问题正文中有一点输入错误。它应该是一个[i]=新的双[4-i]。因此,每一新行少了一个元素。但是,通过你对如何打印阵列的解释,我理解了布局。谢谢你,谢谢你给我解释语法。这很有帮助。不幸的是,我在问题正文中有一点输入错误。它应该是一个[i]=新的双[4-i]。因此,每一新行少了一个元素。但是,通过你对如何打印阵列的解释,我理解了布局。谢谢你。你好,这真的很有帮助。谢谢你抽出时间帮我画出来。不幸的是,我没有足够的声誉点数来+1你,但当我这么做时,我会回来为你做。:)谢谢你的评论自己说:)你好,这实际上很有帮助。谢谢你抽出时间帮我画出来。不幸的是,我没有足够的声誉点数来+1你,但当我这么做时,我会回来为你做。:)谢谢你的评论不言自明:)