Java - 打印2D阵列的最佳方式?

Chi*_*win 52 java printing arrays

我想知道打印2D阵列的最佳方法是什么.这是我的一些代码,我只是想知道这是不是很好的做法.如果您发现任何其他错误,请更正我在此代码中所犯的任何错误.谢谢!

int rows = 5;
int columns = 3;

int[][] array = new int[rows][columns];

for(int i = 0; i<rows; i++)
    for(int j = 0; j<columns; j++)
        array[i][j] = 0;

for(int i = 0; i<rows; i++)
{
    for(int j = 0; j<columns; j++)
    {
        System.out.print(array[i][j]);
    }
    System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

Pra*_*ran 124

您可以用简单的方式打印.

使用以下方法打印2D数组

int[][] array = new int[rows][columns];
System.out.println(Arrays.deepToString(array));
Run Code Online (Sandbox Code Playgroud)

使用下面的方法打印1D阵列

int[] array = new int[size];
System.out.println(Arrays.toString(array));
Run Code Online (Sandbox Code Playgroud)

  • 我知道这有点晚了,但是这会在不同的行上打印出来.[我接受了这个答案](/sf/ask/899164591/#17423410)`System.out.println(Arrays.deepToString (twoDm).replace("],","] \n"));` (17认同)
  • 2D版本在一行上打印所有内容,这是不正常的:( (9认同)

snr*_*snr 22

我通常更喜欢foreach当我不需要使用它们的索引进行算术运算时.

for (int[] x : array)
{
   for (int y : x)
   {
        System.out.print(y + " ");
   }
   System.out.println();
}
Run Code Online (Sandbox Code Playgroud)

  • 这就是最好的答案。该代码将所有内容整齐地打印在表格中 (3认同)
  • 在不调用Collections API的情况下很好地兼顾了可读性。 (2认同)

mat*_*ddy 16

简单而干净的方式来打印2D数组.

System.out.println(Arrays.deepToString(array).replace("], ", "]\n").replace("[[", "[").replace("]]", "]"));
Run Code Online (Sandbox Code Playgroud)

  • 那不干净. (8认同)
  • 我认为它很干净。 (2认同)

小智 8

你拥有的东西没有错.任何阅读代码的人都应该轻易消化双嵌套for循环.

也就是说,以下公式是更密集和更惯用的java.我建议尽早探讨一些静态实用程序类,如ArraysCollections.可以通过有效使用来削减大量的样板.

for (int[] row : array)
{
    Arrays.fill(row, 0);
    System.out.println(Arrays.toString(row));
}
Run Code Online (Sandbox Code Playgroud)


suv*_*007 8

新线两线:

for(int[] x: matrix)
            System.out.println(Arrays.toString(x));
Run Code Online (Sandbox Code Playgroud)

没有新线的一个班轮:

System.out.println(Arrays.deepToString(matrix));
Run Code Online (Sandbox Code Playgroud)


小智 5

我猜那是最好的:

   for (int[] row : matrix){
    System.out.println(Arrays.toString(row));
   }
Run Code Online (Sandbox Code Playgroud)


Zha*_*ang 5

来自Oracle 官方 Java 8 文档

public static String deepToString(Object[] a)

返回指定数组的“深层内容”的字符串表示形式。如果数组包含其他数组作为元素,则字符串表示形式包含它们的内容等等。该方法旨在将多维数组转换为字符串。