2016-04-17 2 views
-2

Так что я хочу сделать массив вне метода, так что другие методы могут использовать:Java - Определить размер массива позже

public int x = 0; 
public int[] myIntArray = new int[x]; 

Но х 0, а позже определяется в методе как номер, введенный пользователь:

x = input.nextInt(); 

Но этот метод уже размер 0, так как я бы изменить (переопределить) размер массива? Я попытался сделать это, указав массив в методе, но если я это сделаю, я не могу получить доступ к массиву из другого метода. Я новичок, и я не могу сделать ArrayList, можно ли это сделать?

EDIT: В принципе: как определить размер массива позже?

+1

Почему бы не использовать arraylist вместо этого? Вы можете преобразовать этот список в массив позже, если хотите как массив только на более позднем этапе. –

+0

Возможный дубликат [Изменить размер массива при сохранении текущих элементов в Java?] (Http://stackoverflow.com/questions/13197702/resize-an-array-while-keeping-current-elements-in-java) – paisanco

+1

Так объявить массив _after_ пользователь ввел свой размер. – Tunaki

ответ

1

Конечно, просто объявить его там, где вы его с public int[] myIntArray;, а затем инициализировать его, как только вы знаете, насколько он должен быть с myIntArray = new int[x];

+0

Вот что я искал! Спасибо за быстрый ответ! –

+0

yw, но, пожалуйста, прочитайте и повинуйтесь http://stackoverflow.com/help/someone-answers – Vampire

+0

Да, я пытался отметить это правильный ответ (зеленая галочка), но он сказал мне подождать около 9 минут. –

0

Вы могли бы объявить, но не экземпляр с public int[] myIntArray;

Позже , после вашего кода x = input.nextInt();, создайте массив с помощью myIntArray = new int[x] в этом методе. Вы все еще должны быть в состоянии получить доступ к массиву из других методов

0

Вы можете просто объявить его без инициализации, как:

public int[] myIntArray; 

затем поместить значение после того, как вы получили один.

x = input.nextInt(); 
myIntArray = new int[x]; 
Смежные вопросы