如何用Java创建字典?[关闭]


236

我正在尝试实现字典(如实体书中那样)。我列出了单词及其含义。

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

在给定密钥的情况下,如何找到并返回值?


24
好吧,本着专注于问题而不是用户的精神,我投票决定重新开放。我确定该用户现在已经完成了课程。;)与stackoverflow.com/questions/1540673/…重复,但是我认为这里的答案更好。
Adi Inbar 2014年

Answers:


313

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

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

例如(使用HashMap):

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

1
@Cruncher它还实现了Map(检查javadoc)
arshajii 2012年

1
@arshajii我怀疑我们是否手动映射了字典中的所有字符串,或者我可以说我们手动存储了所有单词的含义。所以我的问题是,有没有办法像字典的db(转储)文件那样获取单词及其含义/定义,因此我们可以避免手动添加每个单词的含义
Vighanesh Gursale 2013年

@VighaneshGursale在执行期间,您将需要使用put方法来构建数据结构。将put命令想成是从光盘读取文件,然后将其放置在memory(ram)中,以便可以使用它。如果您要在load auto上将其作为数据结构加载到文件中,则需要查看java spring,但是它很复杂。
Dan Ciborowski-MSFT 2014年

5
顺便说一句,您实际上不需要第二次包含<String,String>。你可以做Map<String, String> map = new HashMap<>();
塞缪尔·诺伊斯

你忘了提及的ConcurrentHashMap其中较优选在哈希表使用
Arsenius

80

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

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>();

这可以正常工作。


3
dictionary["key"]不会工作-应该会的dictionary.get("key")
arshajii 2012年

21
没错,可能是一些C#进入了:)
SmartK8


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.