Есть ли способ, которым я могу создать переменное количество массивов, используя цикл в Java? - PullRequest
3 голосов
/ 04 июня 2011

Мне интересно, есть ли способ создать массивы в Java на основе переменного количества. Таким образом, если бы мне нужно было создать 10 массивов, цикл составил бы 10 (все именованные последовательно). Но если бы мне не понадобилось 10 массивов, цикл был бы создан и столько, сколько нужно.

Я предполагаю что-то вроде этого:

for(i=0 up to i=imax)

create arrayi

где i - переменная в цикле for.

Если для imax установлено значение 3, будут получены: массив0, массив1, массив2, массив3

спасибо.

Ответы [ 3 ]

7 голосов
/ 04 июня 2011

Да;Вы можете создать массив массивов.Допустим, вам нужны массивы int:

int numberOfArrays = 10;
int[][] arrays = new int[numberOfArrays][];
for (int i = 0; i < numberOfArrays; i++)
    arrays[i] = new int[x]; // Where x is the size you want array i to be

Однако вы можете не динамически создавать переменные с именами array0, array1 и так далее.Для многомерных массивов такой набор переменных не требуется, так как вы можете написать arrays[0], arrays[1];это также более гибко, поскольку вы можете индексировать в коллекцию массивов с помощью arrays[i], чего нельзя было бы сделать, если у вас были array0, array1 и т. д.

0 голосов
/ 04 июня 2011

Java не допускает такого рода метапрограммирование. Вы не можете программно объявлять переменные.

Как пишет @Aasmund, вы можете сделать - объявить массив для хранения ваших массивов.

Для вашего конкретного вопроса, это то, что хотел бы получить результат:

String[][] array = new String[IMAX][];
for (int i = 0; i < array.length; ++i) {
  array[i] = createArray(...);
}

// cannot use 'array2', but something close:
String[] contents = array[2];
0 голосов
/ 04 июня 2011

Нет шансов сделать это, вы должны использовать подход двумерного массива ...

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