2011-01-09 74 views
2

我退出了我的联盟。

确定,所以如果我能做到这一点:将数组命名为一个循环

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]; 
} 

我看了你不能命名一个数组变量,所以我不能看到如何使用循环来生成具有不同名称(基本上多于一个)的数组。

谢谢

+5

请澄清你的问题,因为它没有意义(至少对我来说)。你究竟想要做什么,为什么?你使用哪种编程语言? C++还是Java?他们绝对不一样。 – 2011-01-09 20:46:47

+0

对不起,它不是很清楚,即时通讯使用java,这只是我放在一起的一个小例子。我基本上试图创建一个数组名称列表中读取名称。 – alisdairv 2011-01-09 20:54:07

+2

如果你使用Java,你为什么要把它标记为C++?这几乎就像你想*得到对你没用的答案。 – 2011-01-09 20:56:36

回答

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") 

doi的优点通过这种方式,只要它们位于不同的地图中,就可以使用多个相同名称的数组。但是请注意,当您在同一个映射中将两个或更多个数组映射到相同的名称时,以前的数组将被覆盖(丢失)。

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); 

等等

2

你可以让数组的数组(有时称为多维数组):

int [][] arr = new int[137][42];