1

目前我有一个 arrayList 包含几个值对。我正在尝试以矩阵格式打印它们,如下例所示。每个奇数是矩阵中的位置,后面的数字是值。该位置在计数器中上升,如果数组中不存在该数字,则将 0 放置在其位置。有点难以解释。

arraylist contains (1, 10, 2, 90, 4, 9, 7, 2, 11, 4, 14, 45)

输出:

0 10 90 0
9 0  0  2
0 0  0  4
0 0  45 0

我试过了:

int position, value;
int size = 16;

for (int i = 0 ; i < size ; i += 2) {
    position = matrix.get(i);

    if(position == i){
        value = matrix.get(i+1);
        System.out.print(value);
    } else {
        System.out.print("0");

      }

}
4

2 回答 2

1

您想读取数组中的数字不是一个接一个,而是两个接两个。试试这个(这不足以解决你的问题,但这会有所帮助):

for (int i = 0 ; i < size ; i += 2) {
    int position = matrix.get(i);
    int value    = matrix.get(i+1);

    ... // Deal with them
}

要使用正确的值实际填充矩阵,您应该使用Map<Integer, Integer>.

于 2013-03-11T23:12:23.817 回答
0

for您可以在循环中增加 1 以上,例如

for(int i = 0, size = matrix.size( ); i < size ; i = i+2)
{
    ...
}
于 2013-03-11T23:11:52.227 回答