Java 如何为二维数组创建toString方法
我正在写一个矩阵计算程序,它必须包含一个toString方法来显示矩阵。到目前为止,我已经做到了这一点,但我不确定我是否做对了。使用Java 8,您可以非常优雅地完成:Java 如何为二维数组创建toString方法,java,matrix,Java,Matrix,我正在写一个矩阵计算程序,它必须包含一个toString方法来显示矩阵。到目前为止,我已经做到了这一点,但我不确定我是否做对了。使用Java 8,您可以非常优雅地完成: public String toString() { return Stream.of(info).map(Arrays::toString).collect(Collectors.joining("\n")); } 对于矩阵的简单toString方法(不使用流)可以是: p
public String toString() {
return Stream.of(info).map(Arrays::toString).collect(Collectors.joining("\n"));
}
对于矩阵
的简单toString
方法(不使用流)可以是:
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();
}
构造函数将从类外部调用:
//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从矩阵本身检索。如果您将其放入main方法中,它就可以正常工作:
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);
}
}
}
请记住,在第二个构造函数中,您应该这样写:
public Matrix(double[][] info) {
this.info = info;
}
因为参数是info,而不是矩阵的大小。您在
中弄错了(int j=0;j
public Matrix(double[][] info) {
this.info = info;
}