Ответ
Нет. Массив в Java имеет фиксированную длину, которая задается при создании и не может быть изменена. Это делает его статической, а не динамической структурой данных.
Пример фиксированного размера:
int[] staticArray = new int[5]; // Размер 5 фиксирован
staticArray[0] = 10;
// staticArray[5] = 20; // Вызовет ArrayIndexOutOfBoundsException
// staticArray.length = 10; // Невозможно, поле length final
Динамические альтернативы в Java:
Для работы с коллекциями переменного размера используйте классы из java.util:
ArrayList<E>(наиболее распространенный): динамический массив, который автоматически увеличивает свою вместимость.LinkedList<E>: двунаправленный связный список.
Пример с ArrayList:
import java.util.ArrayList;
ArrayList<String> dynamicList = new ArrayList<>();
dynamicList.add("First"); // Вместимость автоматически расширяется
dynamicList.add("Second");
dynamicList.remove(0); // Размер уменьшается
System.out.println(dynamicList.size()); // 1
| Сравнение: | Характеристика | Массив | ArrayList |
|---|---|---|---|
| Размер | Фиксированный (length) |
Динамический (size()) |
|
| Изменение размера | Нельзя | Автоматическое увеличение вместимости | |
| Типы элементов | Примитивы и объекты | Только объекты (использует autoboxing для примитивов) | |
| Производительность | Быстрый доступ по индексу O(1) | Доступ по индексу O(1), но с накладными расходами на копирование при расширении |