參考答案here,您應該創建一個持有類二維數組作爲數據結構。這方面的一個例子是:
public class Matrix {
private double[][] mat;
public Matrix(double[][] mat) {
this.mat = mat;
}
public double[][] getMatrix() {
return mat;
}
public void setMatrix(double[][] mat) {
this.mat = mat;
}
然後換你的代碼,使隨機花車矩陣/雙打會是這樣:
public static ArrayList<Matrix> generateMatrices(int num, int size) {
ArrayList<Matrix> matrices = new ArrayList<Matrix>();
for(int i = 0; i < num; i++) {
double[][] matrix = new double[size][size];
//populate matrix with random numbers
matrices.add(new Matrix(matrix));
}
return matrices;
}
和所有你會做的是調用該方法,並得到一個矩陣ArrayList:
ArrayList<Matrix> generated = generateMatrices(10, 5);
希望這有助於。
編輯:
toString()是所有對象類都有的方法。如果你嘗試打印一個Object,它將使用Object的toString方法()。 toString()方法基本返回對象實例的內存位置。一些對象,比如ArrayList類,已經爲了讓程序員輕鬆地打印出來而重寫了這個方法。您必須重寫toString()方法才能打印出您的Matrix類,特別是存儲在其類中的矩陣。你可以製作一個自定義的方法來打印出來,但是我決定向你展示OOP的一小部分。在矩陣類中,添加的代碼這片:
@Override
public String toString() {
stringedMat = "";
for(int i = 0; i < mat.length; i++) {
for(int j = 0; j < mat.length; j++) {
if(j != (mat.length - 1)) {
stringedMat += (mat[i][j] + " ");
}else{
stringedMat += mat[i][j];
}
}
stringedMat += "\n";
}
return stringedMat;
}
像'float [] [] newArray = oldArray;'? – csmckelvey
你能澄清你在做什麼嗎? –
你的意思是改變變量的名字? – Jason