使用循环为数组赋值的方法

Method to assigned value to array using loop

如何编写一个方法来通过循环将一组值赋给多维数组?

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;

我可以按上面的方式写,但我想这样做 "dynamically";

public class Test {

public static void main(String[] args) {

     double [] [] a = {{1,2,3},{4,5,6},{7,8,9}};

然后在数组中分配上述值的方法:

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;

}

但是这个方法不行,

好的,我对这个问题不是很确定,但我会尽力回答。基本上你想深拷贝一个矩阵?这里有几个问题:

  1. 我认为一个重要的风格提示是 class 名称应以大写字母开头。我知道这不会解决所有问题,但这是一个很好的做法。
  2. 您应该尝试用大括号围绕您的 for 循环 - 另一种风格提示,但我认为这对初学者很重要(不想出现愚蠢的语法错误)
  3. 如果你想循环一个矩阵 'dynamically' 那么你应该能够调整你的长度。简而言之——不要只是把 3 放在那里,而是使用数组的长度 属性。

在我继续深入之前,我会向您发送一些(希望如此)有用的资源:

Java array tutorial
Java style- because I think it's important...
Multi-Dimensional arrays

希望对您有所帮助。

=== 编辑 ===

如果你想转置一个 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;
}