Java支持关联数组吗?

Java支持关联数组吗?,java,arrays,Java,Arrays,我想知道Java中的数组是否可以执行以下操作: int[] a = new int[10]; a["index0"] = 100; a["index1"] = 100; 我知道我在其他语言中也看到过类似的功能,但我对任何细节都不太熟悉。。。只是有一些方法可以将值与字符串常量相关联,而不仅仅是数字索引。有没有一种方法可以在Java中实现这样的功能?您需要的是Java.util.Map接口及其实现(例如HashMap),其中String作为键您不能用Java数组来实现。听起来你想用一个新的 Map

我想知道Java中的数组是否可以执行以下操作:

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

我知道我在其他语言中也看到过类似的功能,但我对任何细节都不太熟悉。。。只是有一些方法可以将值与字符串常量相关联,而不仅仅是数字索引。有没有一种方法可以在Java中实现这样的功能?

您需要的是
Java.util.Map
接口及其实现(例如
HashMap
),其中
String
作为键

您不能用Java数组来实现。听起来你想用一个新的

Map a=newhashmap();
//将值放入地图
a、 put(“index0”,100);//从int->Integer自动装箱
a、 put(“index1”,整数值of(200));
//从映射中检索值
int index0=a.get(“index0”);//100
int index1=a.get(“index1”);//200

> p>我对C++一无所知,但你可能正在寻找一个实现的类。

你在寻找<代码> HasMaP()类吗?请看这里的图片

粗略地说,用法是:

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

等等。

要用字符串键存储东西,你需要一张地图。在地图上不能使用方括号。你可以在C++中这样做,因为它支持运算符重载,但是java没有。
有,但将为添加。

java还没有关联数组。但是您可以使用哈希映射作为替代。

@Foo:no,
HashMap
是更现代的版本
Hashtable
是“遗留”表(类似于
Vector
/
ArrayList
)。@Joachim:
ArrayList
不是遗留的。好的。我试试看。谢谢:)啊,它确实存在。地图类。谢谢我是java新手:)@Fugogugo既然你是java新手,值得注意的是,你不能把任何东西都粘在地图上。如果您使用树映射,则无论您的键需要实现什么样的接口。如果使用HashMap,请确保在放置到映射中的键上覆盖hashCode和equals方法。但是,在许多情况下,hashCode和equals的默认实现就足够了。等等,什么??真让人困惑啊,就是这样。。哈?谢谢:)@Fugogugo:
HashMap
是一个实现类<代码>地图
是界面。我建议针对
Map
接口进行编码,在这种情况下,这意味着将变量声明为
Map
而不是
HashMap
。Map不能使用原语。它必须是一张
地图
;同样,将其声明为
Map
而不是
HashMap
通常是更好的做法。我已经尝试过了。是的,它不能使用原语。但这个概念是正确的。谢谢。:)@安德鲁·科尔森:啊,这是一个非常愚蠢的打字错误;很抱歉这么做,谢谢你指出这一点。固定的。
HashMap<String, int> a = new HashMap<String,int>();
a.put("index0", 100);