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