【发布时间】:2012-04-27 20:22:37
【问题描述】:
我从网上搜索了几个小时的信息,但我仍然不确定。我的问题是:我想在 android 设备(java 基础)上实现一个字典,我的要求是速度,然后是内存效率,但我无法决定使用哪种数据结构进行搜索。 我有一个数据结构列表,帮助我理解它们并选择一个:
- 三叉树
- TRIE
- Aho–Corasick 树
- [...您的建议 DS...]
如果有人可以指导我在我们找到单词后获得结果(许多领域:发音,意思,例句......),那将是非常友好的?我们会将这些信息保存在另一个数据文件中吗?
【问题讨论】:
-
你的问题很混乱。话虽如此,有一个内置的键值对数据结构称为 HashMap:docs.oracle.com/javase/7/docs/api/java/util/HashMap.html
-
感谢阅读,我的字典将使用一个开源的dict数据文件,然后我会索引它们,可能是几个字典。我的意思是这些词非常大,而且 HASHMAP 的内存效率不高,不能给我列出具有相同前缀的词。我打算使用一棵树-DS。请给我看另一个指南
-
如果您关心内存(根据应用程序的结构,这可能不是真正的问题——服务器执行自动完成,例如内存中的 EJB)使用 in -内存数据库或其他类型的故障转移。对于大多数常见的英语,您只看到 ~ 150K - 400K。你为什么不尝试一下,看看你有没有问题。 Trie 是一个笑话,构建和高效的自动完成。特别是如果您使用参考文献。
标签: java android algorithm dictionary