rev*_*vvy 1 java arrays multidimensional-array
Run Code Online (Sandbox Code Playgroud)5 import java.util.*; 6 7 class Matrix { 8 // declare the member field 9 private int[][] matrix; 10 12 public Matrix(int a, int b, int c, int d) { 13 matrix = new int[2][2]; 14 matrix[0][0] = a; 15 matrix[0][1] = b; 16 matrix[1][0] = c; 17 matrix[1][1] = d; 18 } 19 // identity matrix 20 public Matrix(char i) { 21 matrix = new int[2][2]; 22 matrix[0][0] = 1; 23 matrix[0][1] = 0; 24 matrix[1][0] = 1; 25 matrix[1][1] = 0; 26 } 27 29 public int[][] toPow(int n, int[][] matrix) { 30 if (n == 1) 31 return matrix; 32 else { 33 int[][] temp = matrix; 34 for (int i = 0; i < 2; i++) { 35 for (int j = 0; j < 2; j++) { 36 temp[i][j] += matrix[i][j] * this.matrix[j][i]; 37 } 38 } 39 return toPow(n - 1, temp); 40 } 41 } 42 public int[][] toPow(int n) { 43 return toPow(n, this.matrix); 44 } 45 } 46 47 class Maths { 48 49 public static void main(String[] args) { 55 Matrix m = new Matrix(1,2,3,4); 56 System.out.println(Arrays.toString(m.toPow(2))); 57 System.out.println(Arrays.toString(new int[][] {{1,2},{3,4}})); 58 } 59 }
Arrays.toString(Array)应该在调用时打印出数组的内容.但是当我尝试在代码的最后两行中打印数组时,我得到的是地址而不是内容.谁能帮助我理解为什么会这样?
您将看到调用顶部数组的toString()每个元素的结果.但每个元素本身就是一个数组.改为使用:Arrays.deepToString()
System.out.println(Arrays.deepToString(m.toPow(2)));
Run Code Online (Sandbox Code Playgroud)