Java挑战尚不清楚。二维阵列

时间:2016-07-18 00:08:05

标签: java arrays for-loop

晚上好。我正在审查Java考试的介绍,导师写了一个我似乎错过了一些问题。

考虑:

 int[][] mat = new int[3][4];
for (int row = 0; row < mat.length; row++)
{
for(int col = 0; col < mat[0].length; col++)
{
if (row < col)
mat[row][col] = 1;
else if (row == col)
mat[row][col] = 2;
else
mat[row][col] = 3;
}
}

代码段执行后mat的内容是什么?

答案的选择我不打算专门列出,因为我不需要特定的答案。我需要了解发生什么假设。我插入一个IDE,如果我添加一个System.out.print(mat),我会得到一个胡言乱语的答案;

“[[I @ 139a55”

虽然教师期望在3x4或4x3阵列中选择整数。没有整数超过3.

对此有任何启发对于帮助我理解for循环和要完成的数组之间的关系是非常宝贵的。

1 个答案:

答案 0 :(得分:0)

Java数组类型没有提供toString()方法的特定实现来打印其内容。您所看到的是JVM中引用本身的表示,但它对您的目的而言毫无意义。

我建议您尝试使用

for (int i = 0; i < mat.length; ++i)
  System.out.println(Arrays.toString(mat[i]));

使用Arrays.toString方法,以人类可读的方式打印数组(基本上通过在每个元素上调用toString