gpt4 book ai didi

Java:如何访问对象列表中包含的二维数组

转载 作者:行者123 更新时间:2023-12-01 09:17:15 25 4
gpt4 key购买 nike

我想创建一个二维数组的数组,但这里的一位成员指向了 ArrayList,按照他的建议我编写了以下代码:

public class matrixArray {
double[][] array;
public matrixArray(double[][] initialArray){
array = initialArray;
}
}

然后我通过以下方式实现了它:

public static ArrayList LUDecompose(double[][] A){

ArrayList<matrixArray> LU = new ArrayList<>();
double[][] L = new double[A.length][A.length];
double[][] U = new double[A.length][A.length];

for(int j=0; j<(A.length-1);j++){
for(int i=(j+1); i<A.length; i++){

double lower = A[i][j]/A[j][j];
L[i][j] = lower;

double[] replacement = row_scalar_mult(lower,A[j]);
replacement = vector_add(replacement, A[i]);

row_replace(i, A, replacement);
}
}

LU.add(new matrixArray(L));
LU.add(new matrixArray(A));

return LU;
}

到目前为止一切顺利。现在,我想访问我精美的新 ArrayList 中的 2D 数组。当我在主方法中尝试以下代码时,收到错误“不兼容的类型:对象无法转换为 double[][]”:

double[][] L = LUDecompose(A).get(0);
double[][] U = LUDecompose(A).get(0);

或者

ArrayList LU = LUDecompose(A);
double[][] L = LUDecompose(A).get(0);
double[][] U = LUDecompose(A).get(0);

所以我的问题变成:如何访问“对象”以获取我珍贵的二维数组?

最佳答案

您需要在方法签名中指定正确的返回类型:

public static ArrayList<matrixArray> LUDecompose(double[][] A){

注意 ArrayList<matrixArray> 的使用而不仅仅是ArrayList

然后使用

ArrayList LU = LUDecompose(A);
double[][] L = LUDecompose(A).get(0).array;
double[][] U = LUDecompose(A).get(0).array;

关于Java:如何访问对象列表中包含的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40453271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com