2012-07-26 48 views
2

是否可以使用變量名來操作數組?Java使用變量名來操縱數組

例如:

String addto = "database"; 
database = new String[2]; 

我想值添加到名爲「數據庫」的陣列,它只有1列。

是否可以做這樣的事情......

addto[0] = hi; 
addto[1] = hi1; 

,而不是

database[0] = hi; 
database[1] = hi1; 

等?使用「addto」(「數據庫」)內的值來操縱數組?

謝謝!

編輯:改變字符串AddTo就到 「數據庫」(與 「」)

+0

數組名稱,例如'database',是來自用戶輸入還是什麼? – mellamokb 2012-07-26 17:53:10

+0

是的,它來自用戶輸入 – 01jayss 2012-07-26 17:53:47

+1

您可以查看反思http://docs.oracle.com/javase/tutorial/reflect/special/arrayInstance.html和http://java.sun.com/developer/technicalArticles/ ALT/Reflection/ – kosa 2012-07-26 17:54:25

回答

5

你想使用類似:

Map<String, String[]> arrays = new HashMap<String, String[]>(); 
arrays.put("database", new String[2]); 

... 

map.get(addTo)[0] = hi; 
map.get(addTo)[1] = hi1; 
+0

這是否創建一個名爲「數據庫」的新數組? – 01jayss 2012-07-26 18:08:44

+0

@ 01jayss:不,對象沒有名字。它創建一個新數組,並將該值與地圖中的關鍵「數據庫」相關聯。 – 2012-07-26 18:14:34

0
String addto = "database"; 
database = new String[2]; 
addto[0] = hi; 
addto[1] = hi1; 

此代碼不能編譯,因爲addto是一個字符串,不支持與[]索引。要做類似的事情,你可以使用Jon Skeet所說的java.util.Map