set() を呼び出すたびに、配列内のすべての値が false にリセットされますが、メソッドが終了する前に true に設定されているため、int 行 int col は除きます。配列 B のコピーを作成し、A の値を B の値に設定していると思ったのはなぜですか? それとも私はここで間違っていますか。
public void set(int row, int col) throws IndexOutOfBoundsException {
if (row >capacityr) {
boolean B[][] = new boolean[row+1][capacityc+1];
for (int k = 0; k < capacityr; k++)
for (int j = 0; j < capacityc; j++)
B[k][j] = a[k][j];
capacityr=row;
a = B;
}
if (col >capacityc) {
boolean C[][] = new boolean[capacityr+1][col+1];
for (int k = 0; k <capacityr; k++)
for (int j = 0; j < capacityc; j++)
C[k][j] = a[k][j];
capacityc=col;
a = C;
}
a[row][col] = true;
pT++;
}