几个小时后,我从互联网上搜索了信息,我仍然不确定。我的问题是:我想在 android 设备(java 基础)上实现一个字典,我的要求是速度,然后是内存效率,但我无法决定使用哪种数据结构进行搜索。我有一个数据结构列表,帮助我理解它们并选择一个:
- 三叉树
- 特里
- 阿霍-科拉西克树
- [...您的建议 DS...]
如果有人可以指导我在我们找到单词后获得结果(许多领域:发音,意思,例句......),那将是非常友好的?我们会将这些信息保存在另一个数据文件中吗?
几个小时后,我从互联网上搜索了信息,我仍然不确定。我的问题是:我想在 android 设备(java 基础)上实现一个字典,我的要求是速度,然后是内存效率,但我无法决定使用哪种数据结构进行搜索。我有一个数据结构列表,帮助我理解它们并选择一个:
如果有人可以指导我在我们找到单词后获得结果(许多领域:发音,意思,例句......),那将是非常友好的?我们会将这些信息保存在另一个数据文件中吗?
在搜索数据结构之前,您需要列出设计的主要关注点。这本词典提供了哪些功能?它的主要特点是什么?快速搜索?空间紧凑?插入/删除友好吗?交叉引用友好吗?只有当你想到这些时,你才能衡量候选结构的好坏。
它可以通过多种方式实现,其中之一是 Trie。路线由数字表示,节点指向单词集合。trie的用法在这里解释
同意亨特麦克米伦的评论。如果您需要像常规字典一样按字母顺序对单词进行排序,您可以使用 Java TreeMap,它是一个 SortedMap。