我正在写一个矩阵计算程序,它必须包括一个tostring方法来显示矩阵。这是我目前所拥有的,但我不确定我是否做得对。
xqnpmsa81#
如果你把它放到一个主方法中,它就可以正常工作了:
public static void main(String[] arg){ //calling the constructor ? Matrix second = new Matrix(new double[][]{{2, 8}, {-4, 6}, {0, -2}}); for(double[] i: second.info){ for(double j: i){ System.out.println(j); } } }
请记住,在第二个costructor中,您应该这样写:
public Matrix(double[][] info) { this.info = info; }
因为参数不是矩阵的大小。
fivyi3re2#
使用java 8,您可以非常优雅地完成:
public String toString() { return Stream.of(info).map(Arrays::toString).collect(Collectors.joining("\n")); }
一个简单的 toString 方法(不使用流) matrix 可以是这样的:
toString
matrix
public String toString() { StringBuilder str = new StringBuilder(); for (int i = 0; i < info.length; i++){ for (int j = 0; j < info[i].length; j++) str.append(info[i][j]).append(" "); str.append("\n"); } return str.toString(); }
你的代码有几个错误。在构造函数中,缺少两个参数(即r和c)。然而,你并不真的需要它们;您只需使用 matrix 作为参数传递以计算 info 矩阵大小。
info
// Constructor public Matrix(double[][] info) { this.info = new double[info.length][info[0].length]; for (int i = 0; i < info.length; i++) { for (int j = 0; j < info[0].length; j++) { this.info[i][j] = info[i][j]; } } }
构造函数是从类外部调用的:
//calling the constructor ? Matrix second = new Matrix(new double[][]{{2, 8},{-4, 6},{0, -2}});
例如:
class Main { public static void main(String args[]) { Matrix second = new Matrix(new double[][]{{2, 8},{-4, 6},{0, -2}}); } }
最后,不需要变量来存储矩阵大小
this.a = r; this.b = c;
这些信息可以用java从矩阵本身检索。
2条答案
按热度按时间xqnpmsa81#
如果你把它放到一个主方法中,它就可以正常工作了:
请记住,在第二个costructor中,您应该这样写:
因为参数不是矩阵的大小。
fivyi3re2#
使用java 8,您可以非常优雅地完成:
一个简单的
toString
方法(不使用流)matrix
可以是这样的:你的代码有几个错误。
在构造函数中,缺少两个参数(即r和c)。然而,你并不真的需要它们;您只需使用
matrix
作为参数传递以计算info
矩阵大小。构造函数是从类外部调用的:
例如:
最后,不需要变量来存储矩阵大小
这些信息可以用java从矩阵本身检索。