int[] array = new int[10]; // Length is fixed when the array is created.
Длина массива устанавливается при создании массива. После создания его длина фиксируется.
Почему так должно быть?
int[] array = new int[10]; // Length is fixed when the array is created.
Длина массива устанавливается при создании массива. После создания его длина фиксируется.
Почему так должно быть?
Как отмечалось в других ответах, фиксированный размер является частью определения, и вам придется поговорить с первоначальными авторами, чтобы узнать правду.
Но, как правило, реализовать контейнер переменной длины значительно сложнее, и существует ряд стратегий для его достижения под капотом (связный список, перераспределение памяти...).
Если бы авторы определили массивы переменной длины еще в начале 1990-х годов, это привело бы к нескольким нежелательным последствиям:
a.length
становится изменяемым;java.util.Vector
раньше, а теперь Java Collections, Guava и т. д.).Подводя итог, можно сказать, что массивы в семействе языков C, из которых родилась Java, в целом должны быть простыми инструментами для построения структур более высокого уровня - тогда не было ничего удивительного в ограничении фиксированного размера. Теперь у нас есть выбор реализаций таких структур (LinkedList
, ArrayList
и т. д.), которые обеспечивают выбор поведения во время выполнения, и большинство разработчиков используют эти абстракции.
Это в определении Java array
s:
Массив — это объект-контейнер, который содержит фиксированное количество значений одного типа.
(см. здесь).
Используйте ArrayList
для реализации массива переменного размера.