Динамические массивы без вектора в Java - PullRequest
0 голосов
/ 22 февраля 2010
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];
 }
}

Есть ли проблема в этом?

Ответы [ 3 ]

3 голосов
/ 22 февраля 2010

Нет. (Кроме n может быть отрицательным или огромным, вызывая условие отказа в обслуживании (DoS).)

С массивами вы не можете изменить размер позже. Вы должны создать новый массив, скопировать содержимое и переключить все ссылки.

0 голосов
/ 22 февраля 2010

Преимущество использования класса, такого как 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

0 голосов
/ 22 февраля 2010

Нет, но, в отличие от Vector , он явно не изменяется. Обратите внимание, что в Java все коллекции размещаются в куче 1004 *.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...