Каждый раз, когда я вызываю set(), он сбрасывает все значения в массиве в значение false, за исключением того, что когда-либо было int int col, потому что я устанавливал значение true перед тем, как заканчивается метод. Почему это происходит? Я думал, что делаю копию массива 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++;
}
Таким образом, если вы хотите установить значение индекса, которое находится вне емкости массива верно, то это позволит расширить матрицу, чтобы включить этот индекс – Slowbro
вы должны использовать родной массив. Было бы проще, если бы вы использовали 2D 'ArrayList', например' ArrayList> ', который будет расти для размещения текущего количества элементов. –
twain249
Я использую другой интерфейс для использования Arraylist. Но для меня это большой вызов. – Slowbro