我很好奇如何在Java中创建字典。我知道Python有一个类似于dictionary = {"key": "something"}
的字典设置。
我知道在Java中还有其他方法可以做到这一点,例如创建两个同步列表并在每个列表中使用相同的位置来模仿字典。
ArrayList<Object> keys = new ArrayList<Object>();
ArrayList<Object> values = new ArrayList<Object>();
public void add(Object key, Object value){
keys.add(key);
values.add(value);
}
// And a subsequent return function
public Object getValue(Object key) {
return values.get(keys.indexOf(key));
}
然而,这对我来说很糟糕。使用单个语句是否有更简单的语法?关于这个问题已经被问到的大多数问题都是关闭的,因此没什么帮助。
答案 0 :(得分:9)
Java uses HashMaps instead of dictionaries.
其他一些地图包括TreeMap。区别在于后端(一个使用哈希表,另一个使用红黑树)
示例:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
....
Map<String,String> mMap = new HashMap<String, String>();
mMap.put("key", "something");
Iterator iter = mMap.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry mEntry = (Map.Entry) iter.next();
System.out.println(mEntry.getKey() + " : " + mEntry.getValue());
}
答案 1 :(得分:3)
通常你可以像HashMap
这样使用:
Map<String, String> map = new HashMap<String, String>();
例如,现在您可以像使用Python中的字典一样使用此map
对象。
map.put("Key", "Value");
System.out.println(map.get("Key"));
还有其他一些实现Map
接口的类对于在Java中使用Dictionary很有用(某些类在某些情况下比其他情况更好用)。
答案 2 :(得分:1)
Java中Dictionary的可能替代方法是HashMap。 您可以参考Oracle的文档以获取进一步的参考。 http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html
答案 3 :(得分:1)
您可以查看
http://docs.oracle.com/javase/6/docs/api/java/util/Map.html
如果您担心性能,则应尝试使用TreeMap。我假设您更关心检索时间而不是插入检索时间。
答案 4 :(得分:1)
为了简化地图创建(以及许多其他有用的东西),我建议Guava。请特别注意ImmutableMap.of和ImmutableMap.Builder。
示例:
Map<String, Integer> map = ImmutableMap.of(
"one", 1,
"two", 2,
"three", 3
);
Map<String, Integer> map = new ImmutableMap.Builder<String, Integer>()
.put("one", 1)
.put("two", 2)
.put("three", 3)
.build();
答案 5 :(得分:1)
一个单词可能包含多个含义。所以你可以使用MultiMap。
MultiMap dictionary = new MultiValueMap();
dictionary.put("key", "something");
dictionary.put("key", "Important");
System.out.println("dictionary Value : "+dictionary.get("key"));
字典价值:[某事,重要]