java - 如何使用 trie 设计字典应用程序?

标签 java search data-structures

我计划在字典应用程序中使用 trie 数据结构实现,但问题是向 trie 加载超过 10,000 个单词。虽然 trie 去掉了字母的冗余,并且在 primay 中加载的总内存不会超过几个 kb,但是将所有单词加载到 trie 中所需的时间仍然会花费很多时间 n 甚至会花费如果它是为手机应用程序实现的,则更多。

有什么可以做的建议吗?

最佳答案

您可以发送包含所有字典单词的序列化 trie,而不是(或者可能除了)随应用程序一起发送包含字典的数据库。可以按照您想要的任何方式对其进行序列化(可能作为数据库或 xml 文件中的 blob),然后您可以将其反序列化以在应用程序启动时创建 java trie 对象。

为此,您可以使用部署脚本,该脚本通过遍历所有字典单词来创建特里树,将它们放入特里树中,然后将特里树序列化为某个文件或 blob,并将此序列化特里树与发布的应用程序打包。

关于java - 如何使用 trie 设计字典应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15516914/

相关文章:

c# - 两个字符串之间的相关百分比

mysql - 非文本搜索会从搜索引擎中受益吗?

java - 每个节点有多个 child 的树的搜索方法

java - 为什么将 ConcurrentNavigableMap 实现为跳跃列表?

java - 将可序列化对象写入文件 - Google 云存储

java - FindsBug 警告 :A prepared statement is generated from a nonconstant String

regex - 简单的TextWrangler Grep替换

java - 如何在 Android 中按升序对 DynamoDB Hashkey 进行排序

java - 我应该使用什么 GWT 小部件来显示对象的字符串属性?

java - 查找第二次出现索引最低的第一个重复元素