2010-11-24 33 views
6

比如我想這樣做:我可以用java中的變量命名數組嗎?

String[] arraynames = new String[2]; 
arraynames[0] = "fruits"; 
arraynames[1] = "cars"; 

,現在我不知道如何做到這一點

String[] arraynames[0] = new String[100]; // ?????? 

讓我創建一個名爲水果與100個細胞的String數組... 我知道這不起作用,但有沒有辦法做到這一點?

+0

你是說你想要一個數組的數組或只是一個名爲fruits的數組? – johnny 2010-11-24 21:50:17

+0

他想要在數組中存儲一些字符串,然後使用數組和名稱變量的數據。 AFAIK不可能發生的事 – Muggen 2010-11-24 21:55:23

回答

15

使用的HashMap

例子:

HashMap<String,String[]> arraynames = new HashMap<String,String[]>(); 
arraynames.put("fruits", new String[1000]); 

// then simply access it with 
arraynames.get("fruits")[0] = "fruit 1"; 

不過,我可以建議你ArrayList更換陣列?

HashMap<String,ArrayList<String>> arraynames = new HashMap<String,ArrayList<String>>(); 
arraynames.put("fruits", new ArrayList<String>()); 

// then simply access it with 
arraynames.get("fruits").add("fruit 1"); 

** 編輯 **

要有float值,而不是字符串

數組
HashMap<String,ArrayList<Float>> arraynames = new HashMap<String,ArrayList<Float>>(); 
arraynames.put("fruits", new ArrayList<Float>()); 

// then simply access it with 
arraynames.get("fruits").add(3.1415f); 
1

所以,你正在尋找一個雙索引數組?

是這樣的:

String[][] arraynames = String[2][100]; 

已創建包含每個在此情況下100個字符串元件2個數組的數組。

+0

是的,但我想實際上命名不同名稱的陣列! – Johny 2010-11-24 21:53:56

+1

如果是這種情況,應該使用2種不同類型的Fruit對象的ArrayList。見Stacker的迴應。 – CoolBeans 2010-11-24 21:56:15

+0

由於@CoolBeans提到,是的 - ArrayList可能是你實際尋找的。 – aperkins 2010-11-25 22:33:28

0

我希望得到你的權利,你可以像這樣:

ArrayList arraynames = new ArrayList(); 

arraynames.add("fruits"); 
arraynames.add("cars"); 

arraynames.set(0, new ArrayList(100)); 
0

我不上的第二行代碼在這裏很清楚。你說你正在嘗試創建一個名爲fruits的字符串數組。如果我明白這個權利,這應該就足夠了。

String [] fruits = new String[100]; 
0

你應該使用雙維數組是這樣的:

String[][] myData = new String[2][100]; 

現在myData是一個包含2個元素的數組,兩者都是 「100個細胞」 的陣列,則可以按如下方式使用這2個陣列:

String[] fruits = myData[0]; 
String[] cars = myData[1]; 
fruits[0] = "peach"; 
cars[0] = "mustang"; 
0

使用Guava庫:

ListMultimap<String,String> mappedItems = ArrayListMultimap.create(); 
mappedItems.put("Fruits","Apple"); 
mappedItems.put("Fruits","Orange"); 
mappedItems.put("Fruits","Banana"); 
mappedItems.put("Cars", "BMW"); 
mappedItems.put("Cars","Ferrari"); 
System.out.println(mappedItems); 

輸出:

{汽車= [寶馬,法拉利],水果= [蘋果,橙子,香蕉]}

0

您可以使用t他如下:

String[][] arraynames = String[2][100]; 
Map<String, String[]> namesMap = new HashMap<String, String[]>(); 
List<List<String>> names = new ArrayList<ArrayList<String>()>>(); 
相關問題