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

Posted

技术标签:

【中文标题】如何在 Java 中创建字典? [关闭]【英文标题】:How do you create a dictionary in Java? [closed] 【发布时间】:2012-11-12 16:00:39 【问题描述】:

我正在尝试实现一本字典(如实体书)。我有一个单词列表和它们的含义。

Java 提供了哪些数据结构/类型来将单词列表及其含义存储为键/值对。

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

【问题讨论】:

好吧,本着关注问题而不是用户的精神,我投票决定重新开放。无论如何,我确信这个用户现在已经完成了课程。 ;) 它是 ***.com/questions/1540673/… 的副本,但我认为这里的答案更好。 【参考方案1】:

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

HashMap LinkedHashMap Hashtable

每个都针对特定情况进行设计/优化(请访问其各自的文档以获取更多信息)。 HashMap 可能是最常见的;首选默认值。

例如(使用HashMap):

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

【讨论】:

@Cruncher 它还实现了Map(查看javadoc) @arshajii 我怀疑我们手动映射字典中的所有字符串,或者我可以说我们手动存储所有单词的含义。所以我的问题是,有没有像字典的 db(转储)文件这样的方法来获取单词及其含义/定义,这样我们就可以避免手动添加每个单词的含义 @VighaneshGursale 您需要在执行期间使用 put 方法来构建数据结构。将 put 命令想象为从磁盘读取文件,并将其放置在内存(ram)中,以便您可以使用它。如果您有一个文件要在 load auto 时作为数据结构加载,则需要查看 java spring,但它很复杂。 顺便说一句,您实际上不需要第二次包含 。你可以做Map&lt;String, String&gt; map = new HashMap&lt;&gt;(); 你忘了说 ConcurrentHashMap 比 Hashtable 更适合使用【参考方案2】:

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

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

这可以正常工作。

【讨论】:

没错,可能是一些 C# 溜进来了 :)【参考方案3】:

使用Map interface 和类似HashMap 的实现

【讨论】:

欢迎提供解决方案的链接,但请确保您的答案在没有它的情况下有用:add context around the link 这样您的其他用户就会知道它是什么以及为什么会出现,然后引用最相关的内容您链接到的页面的一部分,以防目标页面不可用。 Answers that are little more than a link may be deleted.【参考方案4】:

有一个抽象类字典

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

但这需要实施。

Java 为我们提供了一个很好的实现,称为 Hashtable

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

【讨论】:

Dictionary 已过时,没有任何实现扩展它。 @asgs 这是什么意思?我仍然可以在 Java 11 中使用它吗? (抱歉我对Java不是很熟悉) @cryanbhu Dictionary 也是deprecated in 11。弃用的发生有多种原因,例如安全问题、实现/设计错误或更好的替代方案。你可以阅读更多关于Deprecation

以上是关于如何在 Java 中创建字典? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中创建 trie [关闭]

如何在java中创建jwt [关闭]

如何在 VSCode 中创建 Java 项目 [关闭]

如何在 Java 应用程序中创建数据库和表? [关闭]

如何在 Java 中创建链表数据结构? [关闭]

如何在 java 中创建一些东西来根据纵横比调整图像的大小和位置? [关闭]