Массивы в Java имеют фиксированную длину, поэтому вы не можете расширить ее.Вам нужно будет создать новый массив большего размера, а затем скопировать содержимое старого массива в новый.Например:
public class Test {
public static void main(String[] args) {
int[][] myArray = new int[3][7];
// Print first dimension
System.out.println(myArray.length); // prints 3
myArray = addRow(myArray);
// Print first dimension
System.out.println(myArray.length); // prints 4
}
private static int[][] addRow(int[][] previous) {
int prevRowCount = previous.length;
int[][] withExtraRow = new int[prevRowCount + 1][];
System.arraycopy(previous, 0, withExtraRow, 0, previous.length);
withExtraRow[prevRowCount] = new int[] { 1, 2, 3, 4, 5, 6, 7 };
return withExtraRow;
}
}
Конечно, вы также можете использовать, например, ArrayList<SomeType[]>
, который динамически растет.(Это на самом деле предпочтительный способ при работе с динамически растущими массивами.)
import java.util.*;
public class Test {
public static void main(String[] args) {
List<int[]> myArray = new ArrayList<int[]>();
// Print first dimension
System.out.println(myArray.size()); // prints 0
// Add three rows
myArray.add(new int[] { 1, 2, 3, 4, 5, 6, 7 });
myArray.add(new int[] { 11, 12, 13, 14, 15, 16, 17 });
myArray.add(new int[] { 21, 22, 23, 24, 25, 26, 27 });
// Print first dimension
System.out.println(myArray.size()); // prints 3
}
}