使用从方法获得的值填充二维数组时遇到问题

我无法用通过迭代方法获得的值填充矩阵。我想使用一个 3x3 矩阵,然后用我通过从 0 到 8 迭代我的方法获得的值填充它。我的想法是一个 for 循环,但不幸的是它不起作用。如果有人可以提供帮助或有可以查找的链接,我会很高兴。


int[][] matrix = new int[3][3];


for (int i = 0; i < matrix.length; i++){

  for (int j = 0; j < matrix[i].length; j++){

    for(int a = 0; a < 9; a++) {

      matrix[i][j] = fields.get(a).getSign().getFieldValue();

    }       

  }

}


繁花不似锦
浏览 89回答 3
3回答

翻过高山走不出你

如我错了请纠正我。我理解你的问题的方式是你想像这样填充矩阵:012345678在这种情况下,您可以执行前 2 个 forloop 并添加一些数学运算,以获得每个位置的正确数字:int[][] matrix = new int[3][3];for (int i = 0; i < matrix.length; i++) {&nbsp; for (int j = 0; j < matrix[i].length; j++) {&nbsp; &nbsp; matrix[i][j] = i * matrix[i].length + j;&nbsp; }}其工作方式是对每一行 (i) 将行号乘以行长(列数)并将当前列添加到其中

冉冉说

如果你模拟你的循环,这就是它的样子i -> 0&nbsp; &nbsp; j -> 0&nbsp; &nbsp; &nbsp; &nbsp; matrix[0][0] -> loop over all values from field这样您就可以将fields.get(8)放入矩阵中的每个索引中。@Alan 的答案展示了如何从一维矩阵正确循环和填充二维矩阵

12345678_0001

要遍历二维字段(例如矩阵),可以使用两个 for 循环:int dimension = 3;int [][] matrix = new int [dimension][dimension];for (int i = 0; i < dimension; i++){&nbsp; &nbsp;for ( int j = 0; j < dimension; j++){&nbsp; &nbsp; &nbsp; matrix[i][j] = fields.get(i).get(j);&nbsp; &nbsp;}}我不完全知道您想如何检索这些值,但至少可以说您当前的调用看起来很可疑:-) 它只会将相同的值分配给 column 中的所有整数j。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java