2014-04-04 2 views
0

Нужно ли назначать Java-массив длине в начале? или может быть динамичным и принимать неограниченное количество данных, пока пользователь не решит, что этого достаточно?Ввод и длина массива Java

Везде я смотрю длина всегда определяется ... Пример

public static void main(String[] args) 
{ 
int a[] = new int[10]; 

System.out.println("Please enter your number: "\n); 

} 

Вместо 10, можно сказать, в то время в будущем, когда пользователь решает ввести определенное количество, как -1, массив завершен? Поэтому пользователь может продолжать вводить информацию, потому что не знает, сколько информации они будут вводить в массив. Я нашел в одном месте, используя (int ... number), является ли это жизнеспособным способом объявления объявленной суммы?

+2

Так что вы ищете 'ArrayList'? – AntonH

ответ

2

Java-массивы имеют фиксированную длину. Если вы хотите что-то, что может расти по мере необходимости, я бы предложил использовать ArrayList, который поддерживается массивом, и делает всю тяжелую работу для вас.

+0

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html – spiderman

+0

Кроме того, 'ArrayList' позволяет использовать расширенный для каждого цикла. Вы должны использовать интерфейс «List» как свой тип переменной, чтобы у вас была гибкость кода, чтобы изменить «ArrayList» на другой тип списка, если вы выберете без необходимости модификации кода. так: «Список a = new ArrayList ();' – SnakeDoc

+0

@azurefrog Вы сказали, используя ArrayList, поддерживаемый массивом, но снова у Array есть предел или вы можете использовать ...? –

0

В Java массив представляет собой структуру данных фиксированной длины. Таким образом, вы не можете изменить длину массива после его создания. Вы можете создать массив, указав любое целое число как его размер (положительное или отрицательное целое число). Если вы дадите отрицательное целое число то он будет компилироваться отлично, но во время выполнения вы получите исключение NegativeArraySizeException.

Подходя к вашим потребностям Предлагаю ArrayList.
Здесь разница между ArrayList and Array

0

Вы можете использовать ArrayList, что-то вроде этого:

public static void main(String args[]) { 
     List<Integer> a = new ArrayList<Integer>(); 
     a.add(1); 
    } 
Смежные вопросы