Java 方法使用循环将值分配给数组

Java 方法使用循环将值分配给数组,java,arrays,for-loop,matrix,Java,Arrays,For Loop,Matrix,如何编写一个方法,通过循环将一组值分配给多维数组 double [][] A = new double [3][3];// A_array[0][0]=1; A_array[0][1]=2; A_array[1][0]=3; A_array[1][1]=4; 我可以用上面的方式写,但我希望“动态地”写 然后在数组中指定上述值的方法: public class matrixloop { private double [][]a; public matrixl

如何编写一个方法,通过循环将一组值分配给多维数组

double [][] A = new double [3][3];// 
    A_array[0][0]=1;
    A_array[0][1]=2;
    A_array[1][0]=3;
    A_array[1][1]=4;
我可以用上面的方式写,但我希望“动态地”写

然后在数组中指定上述值的方法:

public class matrixloop {

private double [][]a;

public matrixloop ( double [][] a)

{
    this.a=a;   
}

public double [][] assigned_1 (double [][] a)

{ 
    for (int c=0; c<3; c++)
        for (int d = 0; d<3; d++)
        this.a[c][d]=a[c][d];
        return a;

}
公共类matrixloop{
私人双[]a;
公共matrixloop(双[][]a)
{
这个a=a;
}
公共双精度[][]分配\u 1(双精度[][]a)
{ 

对于(int c=0;c好的,我不完全确定这个问题,但我会尝试回答。基本上你想深度复制一个矩阵?这里有几个问题:

  • 我认为一个重要的风格提示是,类名应该以大写字母开头。我知道这不会解决所有问题,但这是一个很好的做法
  • 您应该尝试在for循环周围加上一些大括号——这是另一个风格技巧,但我认为这对初学者很重要(不要出现愚蠢的语法错误)
  • 如果你想“动态”循环一个矩阵,那么你应该能够调整你的长度。简言之,不要只是把3放在那里,而是使用数组的长度属性
  • 在我陷入更多问题之前,我将向您发送一些(希望)有用的资源:




    我希望这会有所帮助

    ==编辑===

    如果您想转置一个3*3矩阵,那么您可以使用for循环这样做:

    public double[][] transpose( double[][] oldMatrix ){
        int size = 3;
        double[][] newMatrix = new double[size][size];
        for (int i = 0; i < size; i++){
            for (int j = 0; j < size; j++){
                newMatrix[j][i] = oldMatrix[i][j];
            }
        }
        return newMatrix;
    }
    
    public double[][]转置(double[][]oldMatrix){
    int size=3;
    双精度[]新矩阵=新双精度[尺寸][尺寸];
    对于(int i=0;i
    另外,我不想给多维数组分配一系列数字,你说的
    方法不起作用是什么意思
    ?你只是在复制数组?我写的方法不起作用,我想在主类中给出一组值,然后一个方法将它们分配给数组。例如,我希望1位于[0][0],5在[0][1],8在[0][2]等等。对于链接和建议,基本上我希望转置一个3*3数组(矩阵),因此我将初始化一个3*3矩阵,执行某些计算(例如查找行列式…),然后我将转置它,类似于b[j][I]=a[I][j],因此,为了做到这一点,我想我必须将数组大小作为[I][j]来处理,我编辑了我的答案,以获得一个转置3*3矩阵的示例。将其扩展到任何大小的矩阵(2*7、9000*9000等)将是一个很好的做法
    public double[][] transpose( double[][] oldMatrix ){
        int size = 3;
        double[][] newMatrix = new double[size][size];
        for (int i = 0; i < size; i++){
            for (int j = 0; j < size; j++){
                newMatrix[j][i] = oldMatrix[i][j];
            }
        }
        return newMatrix;
    }