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)应该在调用时打印出数组的内容。但是当我尝试在代码的最后两行中打印数组时,我得到的是地址而不是内容。谁能帮助我理解为什么会这样?
答案 0 :(得分:5)
您会看到在 top 数组的每个元素上调用toString()
的结果。但每个元素本身就是一个数组。请改用Arrays.deepToString()
:
System.out.println(Arrays.deepToString(m.toPow(2)));
答案 1 :(得分:1)
Arrays.toString()
仅适用于一维数组。尝试迭代数组的行并分别在每行上使用Arrays.toString()
。
答案 2 :(得分:0)
Arrays.toString(int [])支持数组(一维),而不支持矩阵(两个+维度)
答案 3 :(得分:0)
您可以为矩阵的每一行或Arrays.deepToString()调用Arrays.toString()。
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
new Test().run();
}
private void run() {
int[] v = { 1, 2, 3 };
int[][] m = { { 1, 1, 1 }, { 2, 2, 2 }, { 3, 3, 3 } };
System.out.println("Printing the array: ");
System.out.println(Arrays.toString(v));
System.out.println("Printing the line addresses: ");
System.out.println(Arrays.toString(m));
System.out.println("Priting the matrix: ");
for (int[] l : m) {
System.out.println(Arrays.toString(l));
}
System.out.println("Priting the matrix (deepToString): ");
System.out.println(Arrays.deepToString(m));
}
}
输出:
Printing the array:
[1, 2, 3]
Printing the line addresses:
[[I@3182f0db, [I@b92d342, [I@546b97fd]
Priting the matrix:
[1, 1, 1]
[2, 2, 2]
[3, 3, 3]
Priting the matrix (deepToString):
[[1, 1, 1], [2, 2, 2], [3, 3, 3]]