我想知道如果在Java數組可以做這樣的事情:Java是否支持關聯數組?
int[] a = new int[10];
a["index0"] = 100;
a["index1"] = 100;
我知道我已經看到了在其他語言類似的功能,但我不是很熟悉的任何細節......只是,有辦法將值與字符串常量相關聯,而不僅僅是數字索引。有沒有辦法在Java中實現這樣的事情?
我想知道如果在Java數組可以做這樣的事情:Java是否支持關聯數組?
int[] a = new int[10];
a["index0"] = 100;
a["index1"] = 100;
我知道我已經看到了在其他語言類似的功能,但我不是很熟悉的任何細節......只是,有辦法將值與字符串常量相關聯,而不僅僅是數字索引。有沒有辦法在Java中實現這樣的事情?
我不知道關於C++的事情,但你可能正在執行the Map interface一類。
你需要的是java.util.Map<Key, Value>
接口和它的實現(例如HashMap
)與String
關鍵
你不能用Java數組做到這一點。這聽起來像你想使用java.util.Map
。
Map<String, Integer> a = new HashMap<String, Integer>();
// put values into the map
a.put("index0", 100); // autoboxed from int -> Integer
a.put("index1", Integer.valueOf(200));
// retrieve values from the map
int index0 = a.get("index0"); // 100
int index1 = a.get("index1"); // 200
您是否在尋找HashMap<k,v>()
類?請點擊此處查看javadocs。
粗略地說,用法是:
HashMap<String, int> a = new HashMap<String,int>();
a.put("index0", 100);
等
要存儲的東西有串鑰匙,你需要一個地圖。您不能在地圖上使用方括號。您可以在C++中執行此操作,因爲它支持操作符重載,但Java不支持。
有a proposal to add this syntax for maps,但它會被添加爲Java 8 at the earliest。
java還沒有關聯數組。但是,您可以使用哈希映射作爲替代。
可能是`HashMap`。 – 2011-02-14 14:34:48
@Jacob你的意思是`Hashtable` – 2011-02-14 14:35:22
@FooBah呃,沒有。 – 2011-02-14 14:35:44