リスト内の各オブジェクトがペアで構成される配列リストから疎行列を出力しようとしています。ペア (オブジェクト) は、位置と値の 2 つの整数を保持します。[位置、値]。
位置は、整数が配置されているスパース行列へのゼロの量です。したがって、たとえば次のような 2 次元行列として表されます。
[000 0023 100] (フォーマットについては申し訳ありません。3x3 マトリックスを想像してください)。とにかく、これの配列リストは次のようになります
aList = {[5,23], [6,1]}
現在、次のコードを使用して、それらすべてをループして 6x6 マトリックスを作成しています。
public void printFullMatrix() {
int count = 0;
int temp = 0;
for (int i = 0; i < aList.size(); i++) {
for (int j = 0; j < aList.get(i).pos - temp; j++) {
count+=1;
if (count % size == 0){
System.out.println("");
} else {
System.out.print(0 + " ");
}
}
System.out.print(aList.get(i).val + " ");
temp = aList.get(i).pos;
}
}
問題は、次の出力が返されることです (| 記号は改行を表します)。
[0 0 35 0 0 99 0 | 0 0 0 0 0 0 | 0 0 0 0 0 0 55| 0 0 20 0 0 0 0 | 0 0 0 3 0 0 0 | 0 0 0 0 0 2 ]
ご覧のとおり、最初の行には 7 つの要素があり、整数が出力されている行ごとに余分な 0 が追加されていることがわかりました。これは、整数がない 2 行目に表示されます。エッセイで申し訳ありませんが、私は一日中これに取り組んでいます!
返信ありがとうございます。