Java支持关联数组吗?
我想知道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
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);