我无法使用通过迭代方法获得的值来填充矩阵。我想使用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();
}
}
}
答案 0 :(得分:1)
如果我做错了,请纠正我。 我理解您的问题的方式是您想要像这样填充矩阵:
012
345
678
在这种情况下,您可以执行前两个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)将行号乘以行长(列数),然后将当前列添加到其中
答案 1 :(得分:0)
要遍历二维字段(例如矩阵),可以使用两个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);
}
}
我不完全知道您要如何检索这些值,但是至少可以说您当前的通话看起来很可疑:-)
它将简单地为列j
中的所有int分配相同的值。
答案 2 :(得分:0)
如果您模拟自己的循环,它就是它的样子
i -> 0
j -> 0
matrix[0][0] -> loop over all values from field
这样,您将fields.get(8)
放入矩阵的每个索引中。
@Alan的答案显示了如何从1d矩阵正确地循环并填充2d矩阵