我想知道Java中的数组是否可以像这样做:
int[] a = new int[10];
a["index0"] = 100;
a["index1"] = 100;
我知道其他语言中有类似的功能,但我不太熟悉具体的细节......只是有一些方法可以将值与字符串常量关联起来,而不仅仅是使用数字索引。在Java中是否有实现这样的功能的方法?
你无法使用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
我对C++一无所知,但你可能正在寻找实现Map接口的类。
java.util.Map<Key, Value>
接口及其实现(例如 HashMap
),其中 String
作为键。HashMap
是更现代的版本。Hashtable
是“遗留”的一个(类似于Vector
/ArrayList
)。 - Joachim SauerArrayList
不是遗留问题。 - Matt BallHashMap<k,v>()
类?请查看这里的 javadocs。HashMap<String, int> a = new HashMap<String,int>();
a.put("index0", 100);
等等。
Map<String, Integer>
;同样,通常最好将其声明为Map
而不是HashMap
。 - Matt BallJava目前还没有关联数组。但是你可以使用哈希映射作为替代方案。
HashMap
是一个实现类;Map
是接口。我建议针对Map
接口进行编码,这意味着在此情况下声明您的变量为Map
而不是HashMap
。 - Matt Ball