Ява - лучший способ для печати в 2D массива?

Мне было интересно, что лучший способ печати в 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();
}
Комментарии к вопросу (4)

Вы можете печатать в простой путь.

Используйте ниже, чтобы распечатать в 2D массив

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

Используйте ниже, чтобы распечатать массив 1Д

int[] array = new int[size];
System.out.println(Arrays.toString(array));
Комментарии (3)

Я бы предпочел вообще объекту, когда я Дон'т нужно делать арифметические операции с их индексами.

for (int[] x : array)
{
   for (int y : x)
   {
        System.out.print(y + " ");
   }
   System.out.println();
}
Комментарии (2)

Простой и чистый способ печати в 2D массива.

System.out.println(Arrays.deepToString(array).replace("], ", "]\n").replace("[[", "[").replace("]]", "]"));
Комментарии (1)

Нет ничего плохого в том, что у вас есть. Дважды вложенных циклов должны быть легко усваивается теми, кто читает ваш код.

Что сказал, следующую формулировку плотнее и более идиоматические Ява. Я'd предлагает ковыряться некоторые статические классы как массивы и сборники раньше, чем позже. Тонны шаблонного могут быть сбриты по их эффективному использованию.

for (int[] row : array)
{
    Arrays.fill(row, 0);
    System.out.println(Arrays.toString(row));
}
Комментарии (1)

Что's лучшее, что я думаю:

   for (int[] row : matrix){
    System.out.println(Arrays.toString(row));
   }
Комментарии (0)

Два лайнера с новой строки:

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

Один лайнер без новой строки:

System.out.println(Arrays.deepToString(matrix));
Комментарии (0)
|1 2 3|
|4 5 6| 

Используйте код ниже, чтобы распечатать значения.

System.out.println(Arrays.deepToString());

Вывод будет выглядеть следующим образом (все матрицы в одну строку):

[[1,2,3],[4,5,6]]
Комментарии (0)

@Ашика'ы ответ работает фантастически, если вы хотите (0,0) должны быть представлены в верхнем, левом углу, в нормальная конвенции в CS. Однако, если вы предпочитаете использовать обычные математические конвенции и Put (0,0) в левом нижнем углу, вы могли бы использовать это:

LinkedList printList = new LinkedList();
for (char[] row: array) {
    printList.addFirst(Arrays.toString(row));;
}
while (!printList.isEmpty())
    System.out.println(printList.removeFirst());

Этом используется принцип LIFO (последним пришел-первым вышел), чтобы изменить порядок во время печати.

Комментарии (0)

Из Оракул Официальный Док На Java 8:

публичная статическая строка deepToString(объект[] а)`

возвращает строковое представление в "глубоком содержании" из В указанный массив. Если массив содержит другие массивы как элементы, строковое представление содержит их содержание и так далее. Этот метод предназначен для преобразования многомерных массивов в строки.

Комментарии (0)

Попробуйте это,

for (char[] temp : box) {
    System.err.println(Arrays.toString(temp).replaceAll(",", " ").replaceAll("\\[|\\]", ""));
}
Комментарии (0)