именование массивов в цикле - PullRequest
2 голосов
/ 09 января 2011

Я вне своей лиги.Хорошо, если я могу сделать это:

int[]teams = new int[3];
for (int i = 0; i < 3; i++)
{
teams[i] = i;
}

как мне сделать то же самое, но назвать несколько массивов, например:

for (int i = 0; i < 3; i++)
{
int[]i = new int[3];
}

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

Спасибо

Ответы [ 3 ]

3 голосов
/ 09 января 2011

Вы бы сделали следующее (Java):

int teams[][] = new teams[3][3]

Вы бы сделали следующее (C ++):

int** teams = new int*[3];
for(int i=0; i<3; i++){
   teams[i] = new int[3];
}

или вы могли бы просто сделать

int teams[3][3];
for(int i=0; i<3; i++){
    for(int j=0; j<3; j++){
        teams[i][j] = //whatever you want
    }
}

Отредактируйте в ответ на ваш комментарий ниже:

Вы ищете MultiMap .Там вы получите:

MultiMap foo = new MultiMap();

foo.put("Bob", 1);
foo.put("Bob", 2);

и т.д ...

2 голосов
/ 09 января 2011

Вы можете сделать массив массивов (иногда называемый многомерным массивом):

int [][] arr = new int[137][42];
1 голос
/ 10 января 2011

Вы не можете динамически генерировать имена переменных, но вы можете добиться того же эффекта с помощью карты:

//Store mappings from array name (String) to int arrays (int[])
Map<String, int[]> namedArrays = new HashMap<String, int[]>();
for (int i = 0; i < 3; i++)
{
  //This is going to be the name of your new array
  String arrayName = String.valueOf(i); 
  //Map an new int[] to this name
  namedArrays.put(arrayName, new int[3]);
}

//If you need to access array called "2" do
int[] array2 = namedArrays.get("2")

Преимущество такого способа состоит в том, что вы можете иметь несколько массивов с одинаковыми именами, еслиони на разных картах.Но учтите, что при сопоставлении двух или более массивов с одним и тем же именем на одной и той же карте предыдущий массив будет переопределен (потерян).

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