为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花不似锦 2022-06-08 17:40:43
我无法用通过迭代方法获得的值填充矩阵。我想使用一个 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();    }         }}
查看完整描述

3 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

如我错了请纠正我。


我理解你的问题的方式是你想像这样填充矩阵:


012

345

678

在这种情况下,您可以执行前 2 个 forloop 并添加一些数学运算,以获得每个位置的正确数字:


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


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

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

    matrix[i][j] = i * matrix[i].length + j;

  }

}

其工作方式是对每一行 (i) 将行号乘以行长(列数)并将当前列添加到其中


查看完整回答
反对 回复 2022-06-08
?
冉冉说

TA贡献1877条经验 获得超1个赞

如果你模拟你的循环,这就是它的样子


i -> 0

    j -> 0

        matrix[0][0] -> loop over all values from field

这样您就可以将fields.get(8)放入矩阵中的每个索引中。


@Alan 的答案展示了如何从一维矩阵正确循环和填充二维矩阵


查看完整回答
反对 回复 2022-06-08
?
12345678_0001

TA贡献1802条经验 获得超5个赞

要遍历二维字段(例如矩阵),可以使用两个 for 循环:


int dimension = 3;

int [][] matrix = new int [dimension][dimension];


for (int i = 0; i < dimension; i++){

   for ( int j = 0; j < dimension; j++){

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

   }

}

我不完全知道您想如何检索这些值,但至少可以说您当前的调用看起来很可疑:-) 它只会将相同的值分配给 column 中的所有整数j。


查看完整回答
反对 回复 2022-06-08
  • 3 回答
  • 0 关注
  • 88 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信