В Java есть структуры данных, которые уже делают это для вас (например, ArrayList
).Но если вам действительно нужно реализовать это самостоятельно, тогда стандартным методом будет хранить количество элементов, которые вы в данный момент храните отдельно от емкости массива (т.е. его длины).
Например, дляМассив строк, начинающийся с размера 10 и удваивающийся по размеру при заполнении:
String[] array = new String[10];
int size = 0;
private add(String item) {
if (size == array.length)
array = Arrays.copyOf(array, array.length * 2);
array[size++] = item;
}
Если производительность не важна, вы можете расширить каждый элемент и избежать сохранения размера (так как он всегда равендлина массива):
array = Arrays.copyOf(array, array.length + 1);
array[array.length - 1] = item;