Java 应该选择哪种数据结构?[安卓字典]

Java 应该选择哪种数据结构?[安卓字典],java,android,algorithm,dictionary,Java,Android,Algorithm,Dictionary,在网上搜索了几个小时后,我仍然觉得什么都不确定。我的问题是:我想在android设备(Javabase)上实现一个字典,我的要求是速度,然后是内存效率,但我无法决定使用哪个数据结构进行搜索。 我有一个数据结构列表,帮助我理解它们并选择一个: 三元树 特里亚 Aho–珊瑚病树 […您建议的DS…] 如果有人能指导我找到单词后的结果(很多领域:发音,意思,例句…),我会非常感激的?我们将把这些信息保存在另一个数据文件中?它可以通过多种方式实现,其中之一是Trie。路由由数字表示,节点指向单词集合

在网上搜索了几个小时后,我仍然觉得什么都不确定。我的问题是:我想在android设备(Javabase)上实现一个字典,我的要求是速度,然后是内存效率,但我无法决定使用哪个数据结构进行搜索。 我有一个数据结构列表,帮助我理解它们并选择一个:

  • 三元树
  • 特里亚
  • Aho–珊瑚病树
  • […您建议的DS…]


如果有人能指导我找到单词后的结果(很多领域:发音,意思,例句…),我会非常感激的?我们将把这些信息保存在另一个数据文件中?

它可以通过多种方式实现,其中之一是Trie。路由由数字表示,节点指向单词集合。trie的用法已被解释

它可以通过几种方式实现,其中之一就是trie。路由由数字表示,节点指向单词集合。trie的用法已被解释

在搜索数据结构之前,您需要列出设计的主要关注点。这本词典有什么功能?它的主要特点是什么?快速搜索?空间紧性?插入/删除友好?交叉引用友好?只有当你有这些想法时,你才能衡量候选结构有多好。

在搜索数据结构之前,你需要列出设计的主要关注点。这本词典有什么功能?它的主要特点是什么?快速搜索?空间紧性?插入/删除友好?交叉引用友好?只有当你有了这些想法,你才能衡量候选人的结构有多好。

同意亨特·麦克米伦的评论。如果您需要像普通词典一样按字母顺序对单词进行排序,您可以使用Java TreeMap,它是一种排序地图。

同意Hunter Mcmillen的评论。如果您需要像普通词典一样按字母顺序对单词进行排序,您可以使用Java TreeMap,它是一个排序图。

您的问题非常令人困惑。也就是说,有一个内置的键值对数据结构称为HashMap:也与感谢阅读相关,我的字典将使用一个开源dict数据文件,然后我将索引它们,可能是几个字典。我的意思是单词非常大,HASHMAP没有内存效率,不能给我列出具有相同前缀的单词。我计划使用一棵树DS。如果您关心内存(这可能不是真正的问题,取决于应用程序的结构——服务器执行自动完成,例如内存中有EJB),请向我展示另一个指南,使用内存中的数据库或其他类型的故障转移。对于大多数常见的英语,您只能看到大约150K-400K。你为什么不试试看你有没有问题。Trie是一个很容易构建的笑话,对于自动完成来说非常有效。特别是当你使用参考资料的时候,你的问题很让人困惑。也就是说,有一个内置的键值对数据结构称为HashMap:也与感谢阅读相关,我的字典将使用一个开源dict数据文件,然后我将索引它们,可能是几个字典。我的意思是单词非常大,HASHMAP没有内存效率,不能给我列出具有相同前缀的单词。我计划使用一棵树DS。如果您关心内存(这可能不是真正的问题,取决于应用程序的结构——服务器执行自动完成,例如内存中有EJB),请向我展示另一个指南,使用内存中的数据库或其他类型的故障转移。对于大多数常见的英语,您只能看到大约150K-400K。你为什么不试试看你有没有问题。Trie是一个很容易构建的笑话,对于自动完成来说非常有效。特别是当你使用推荐信的时候。谢谢你的建议。正如我所说,我需要它运行快,然后内存紧凑。它将能够搜索与其他词典具有相同前缀和通用搜索的列表词。我只是停留在对这些DS的优点和缺点的理解上。Trie和TrialTree都是前缀搜索/列表的好候选。Trie速度更快,但比三元树占用更多的空间。哈希表也很快,但不支持前缀列表。谢谢,我不知道我是否错过了一个更好的DS,你能帮我吗?谢谢你的建议。正如我所说,我需要它运行快,然后内存紧凑。它将能够搜索与其他词典具有相同前缀和通用搜索的列表词。我只是停留在对这些DS的优点和缺点的理解上。Trie和TrialTree都是前缀搜索/列表的好候选。Trie速度更快,但比三元树占用更多的空间。Hashtable也很快,但不支持前缀列表。谢谢,我不知道我是否错过了一个更好的DS,你能帮我吗?是的,我看到了一些好的新的。你能告诉我在哪里可以学习创建一个开源的多词典,如stardict goldendict吗?是的,我从那里看到了一些新的好东西。你能告诉我在哪里可以学习创建一个开源的多词典,如stardict goldendict吗?