Для небольших 2D массивов что-то вроде этого удобно:
int[][] matrix = {{1,2,3}, {4,5,6}, {7,8,9}};
String s = Arrays.deepToString(matrix)
.replace("], ", "\n").replaceAll(",|\\[|\\]", "");
System.out.println(s);
Это печатает:
1 2 3
4 5 6
7 8 9
Это обеспечивает контроль и скорость для ясности и краткости. Если ваша матрица больше и / или вам нужен полный контроль над тем, как печатается каждый элемент (например, выравнивание по правому краю), вам, вероятно, придется сделать что-то еще.