我试图实现一个字典(在物理书)。我有一个单词及其含义的列表。

Java提供了什么样的数据结构/类型来将单词列表及其含义存储为键/值对?

给定一个键,如何找到并返回值?


使用Map接口和HashMap之类的实现


有一个抽象类字典

http://docs.oracle.com/javase/6/docs/api/java/util/Dictionary.html

然而,这需要实施。

Java提供了一个很好的实现,叫做哈希表

http://docs.oracle.com/javase/6/docs/api/java/util/Hashtable.html


这将创建文本(字符串)字典:

Map<String, String> dictionary = new HashMap<String, String>();

然后你把它用作:

dictionary.put("key", "value");
String value = dictionary.get("key");

可以工作,但会产生错误,您需要保持构造函数类与声明类相同。我知道它继承自父类,但不幸的是,它在运行时给出了一个错误。

Map<String, String> dictionary = new Map<String, String>();

这可以正常工作。


你需要一个Map<String, String>。实现Map接口的类包括(但不限于):

HashMap LinkedHashMap 哈希表

每个都是针对特定情况设计/优化的(更多信息请参阅它们各自的文档)。HashMap可能是最常见的;默认值。

例如(使用HashMap):

Map<String, String> map = new HashMap<String, String>();
map.put("dog", "type of animal");
System.out.println(map.get("dog"));
type of animal