2011-01-09 70 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];