import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] v = new int[n]; } }
Есть ли проблема в этом?
Нет. (Кроме n может быть отрицательным или огромным, вызывая условие отказа в обслуживании (DoS).)
n
С массивами вы не можете изменить размер позже. Вы должны создать новый массив, скопировать содержимое и переключить все ссылки.
Преимущество использования класса, такого как vector, заключается в том, что он инкапсулирует все управление, необходимое для работы с вашим массивом. Итак, как сказал Том Хоутин - tackline, он будет управлять неожиданным значением, но он также будет управлять изменением размера и предоставит вам некоторый полезный метод для работы с вашим массивом, например .get witch запретит вам выводить элемент из границы Есть еще много методов, которые вы можете получить: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Vector.html
Кстати, в качестве примечания я бы порекомендовал вам использовать ArrayList: http://java.sun.com/j2se/1.4.2/docs/api/java/util/ArrayList.html
Нет, но, в отличие от Vector , он явно не изменяется. Обратите внимание, что в Java все коллекции размещаются в куче 1004 *.