Java是否支持关联数组?

时间:2011-02-14 14:31:58

标签: java arrays

我想知道Java中的数组是否可以这样做:

int[] a = new int[10];
a["index0"] = 100;
a["index1"] = 100;

我知道我在其他语言中看到了类似的功能,但我并不熟悉任何细节...只是有办法将值与字符串常量相关联而不仅仅是数字索引。有没有办法在Java中实现这样的东西?

6 个答案:

答案 0 :(得分:18)

您不能使用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

答案 1 :(得分:4)

我不了解C ++,但你可能正在寻找一个实现the Map interface的类。

答案 2 :(得分:2)

您需要的是java.util.Map<Key, Value>界面及其实施(例如HashMap),其中String为关键

答案 3 :(得分:2)

要使用字符串键存储内容,您需要一个Map。您不能在地图上使用方括号。您可以在C ++中执行此操作,因为它支持运算符重载,但Java不支持。

a proposal to add this syntax for maps,但会为Java 8 at the earliest添加。

答案 4 :(得分:0)

您在寻找HashMap<k,v>()班级吗?请参阅此处的javadocs

粗略地说,使用方法是:

HashMap<String, int> a = new HashMap<String,int>();
a.put("index0", 100);

答案 5 :(得分:0)

java还没有关联数组。但相反,您可以使用哈希映射作为替代方案。