В большинстве других языков такой дичи нет.
Поэтому массивы Java в принципе бесполезны. Уж лучше вместо них коллекциями пользоваться.
Java
Почему размер массива жестко устанавливается при инициализации?
> В большинстве других языков такой дичи нет
Неправда.
Практически во всех известных мне (C++, Python и Rust, например) есть массивы фиксированной длины в некотором виде. Их значительно проще реализовывать, чем динамические структуры данных, и издержки при их использовании минимальны. Если у тебя пока не было задачи, в которых статический массив был бы не хуже динамического, это ещё не значит, что таких задач не существует в природе.
Неправда.
Практически во всех известных мне (C++, Python и Rust, например) есть массивы фиксированной длины в некотором виде. Их значительно проще реализовывать, чем динамические структуры данных, и издержки при их использовании минимальны. Если у тебя пока не было задачи, в которых статический массив был бы не хуже динамического, это ещё не значит, что таких задач не существует в природе.
Вообще-то, в практически любом компилируемом языке размер массива устанавливается при его создании и дальше не меняется - на то он и массив. Это в динамических языках над массивами поиздевались - позволяя менять их размер.
С другой стороны, в Java размер массива в момент создания задаётся не константой, а произвольным целочисленным выражением:
Scanner in = new Scanner(System.in);
int a[] = new int[in.nextInt()];
Потому никаких проблем не возникает - в любой момент можно создать массив требуемого размера.
С другой стороны, в Java размер массива в момент создания задаётся не константой, а произвольным целочисленным выражением:
Scanner in = new Scanner(System.in);
int a[] = new int[in.nextInt()];
Потому никаких проблем не возникает - в любой момент можно создать массив требуемого размера.
Николай Дусов
А ещё лучше пользоваться коллекциями, а немного возросшей нагрузкой на процессор и память можно пренебречь.
Я тебе даже больше скажу. Массивов на самом деле не существует! Компилятор подставляет системные запросы на выделение памяти (например, malloc).
Николай Дусов
На самом деле ничего не существует - есть только нолики и единички.
Массивы менее популярны в Java скорее всего потому, что в реальных задачах тебе еще надо будет иметь возможность преобразовывать данные, что крайне удобно делать через стримы. Ну наверное это как минимум одна из причин. Поэтому проще всегда и везде получать и возвращать коллекции, нежели заниматься перегонкой массива в стрим/коллекцию и обратно. Особенно массивы примитивов - это вообще ад. Ну и конечно в них можно не определять изначальный размер, что тоже достаточно удобно.
во всех языках так. не ври
Похожие вопросы
- Как создать цикл, который будет считать количество минимальных значений массива на джава
- Задача Есть 2 массива. из первого массива все положительные числа переносим в начало второго массива
- Ребят почему оба элемента массива принимают одинаковое значение? JAVA
- Массивы Прочитал несколько статей по массивам, но так и не понял, как они работают. Объясните вкратце и понятно, плз
- (JAVA) Как прописать чтобы в массиве не было одинаковых элементов?
- Java списочный массив ArrayList
- Как сравнить элементы массива с другой переменной?
- Задача на массивы в Java.
- Как сместить массив вправо java
- Допишите условие цикла for, чтобы заполнить массив случайными тратами