我离开了我的联盟。
好的,如果我能做到这一点:
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];
}
我已经读过你不能用变量命名一个数组,所以我不能只看到如何使用循环生成具有不同名称(基本上不止一个)的数组。
答案 0 :(得分:3)
您将执行以下操作(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);
等...
答案 1 :(得分:2)
您可以创建一个数组数组(有时称为多维数组):
int [][] arr = new int[137][42];
答案 2 :(得分:1)
您无法动态生成变量名称,但您可以使用Map实现相同的效果:
//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")
这样做的好处是,只要它们位于不同的地图中,您就可以拥有多个具有相同名称的数组。但请注意,当您将两个或多个数组映射到同一映射中的相同名称时,前一个数组将被覆盖(丢失)。