如何在Java中打印2D数组?

时间:2019-07-03 05:53:41

标签: java

我对此感到困惑。我想打印一个在代码中声明大小的数组。

package userdefinedarray;

import java.util.Arrays;


public class userdefinedarray 
{    
    public static void main(String[] args) 
    {        
    int[][] myArray = new int[5][10];    
    for(int i=0;i<myArray.length;i++)
    {
        myArray[i] = null;
    }
    System.out.println(Arrays.toString(myArray));
    System.out.println(Arrays.deepToString(myArray));
}

}

这是输出。 “ new int [5] [10]”中的>> [10] <<怎么了?

[null, null, null, null, null]
[null, null, null, null, null]

2 个答案:

答案 0 :(得分:2)

您的二维数组由数组数组组成。以这种方式考虑它。对于每个数组元素,将一个新数组想象为一个元素。因此,要打印它,您需要遍历每个数组,换句话说,遍历行和列。

for(int i=0; i<myArray.length;i++){
    for(int j=0;j<myArray[0].length;j++)
       System.out.print(myArray[i][j] + " ");
    System.out.println();
}

如果您要用任何特定的非null 值填充数组,则可以在外部for循环内进行操作。

此外,您不能

myArray[i] = null;

如果要实际执行此操作,请使用

myArray[i] = new int[myArray[0].length];

答案 1 :(得分:0)

您首先要创建一个包含5个数组的数组,每个数组都有10个int(初始化为0)。

然后在for循环中,将第一个维度的每个索引设置为null。然后,您将得到一个包含五个null元素的数组。

如果出于某些原因您真的想使用空值,我建议您改用List。

如果要设置数组的值,则应在第一个循环中嵌套另一个循环,但是我相信本机int类型设置为null会抛出异常