Java - Best way to print 2D array?

372,111

Solution 1

You can print in simple way.

Use below to print 2D array

int[][] array = new int[rows][columns];
System.out.println(Arrays.deepToString(array));

Use below to print 1D array

int[] array = new int[size];
System.out.println(Arrays.toString(array));

Solution 2

I would prefer generally foreach when I don't need making arithmetic operations with their indices.

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

Solution 3

Simple and clean way to print a 2D array.

System.out.println(Arrays.deepToString(array).replace("], ", "]\n").replace("[[", "[").replace("]]", "]"));

Solution 4

There is nothing wrong with what you have. Double-nested for loops should be easily digested by anyone reading your code.

That said, the following formulation is denser and more idiomatic java. I'd suggest poking around some of the static utility classes like Arrays and Collections sooner than later. Tons of boilerplate can be shaved off by their efficient use.

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

Solution 5

Two-liner with new line:

for(int[] x: matrix)
            System.out.println(Arrays.toString(x));

One liner without new line:

System.out.println(Arrays.deepToString(matrix));
Share:
372,111
Chip Goon Lewin
Author by

Chip Goon Lewin

Updated on July 08, 2022

Comments

  • Chip Goon Lewin
    Chip Goon Lewin almost 2 years

    I was wondering what the best way of printing a 2D array was. This is some code that I have and I was just wondering if this is good practice or not. Also correct me in any other mistakes I made in this code if you find any. Thanks!

    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();
    }