Java多维数组布局
我正在准备考试,这是关于多维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
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你,但当我这么做时,我会回来为你做。:)谢谢你的评论不言自明:)