我有一本由单词及其音标组成的字典。单词都是小写的,所以不涉及区分大小写的搜索。
词典非常庞大,我需要在我的应用程序启动时快速加载它。我宁愿阅读它而不必单独阅读每个条目。
我想我存储和加载它的方式也会影响我将词典保存在内存中的方式
谢谢你的任何想法。
我有一本由单词及其音标组成的字典。单词都是小写的,所以不涉及区分大小写的搜索。
词典非常庞大,我需要在我的应用程序启动时快速加载它。我宁愿阅读它而不必单独阅读每个条目。
我想我存储和加载它的方式也会影响我将词典保存在内存中的方式
谢谢你的任何想法。
您可能希望将其存储为Trie
这是存储字典的有效方式。查看以下答案以获取更多信息
http://en.wikipedia.org/wiki/Trie
https://stackoverflow.com/questions/296618/what-is-the-most-common-use-of-the-trie-data-structure
我想到了几个选项:
mmap
来存储词典,以便仅读取访问的内容。这可能是合理的快速和可靠的,也是最容易实现的。mmap
自己存档seek
操作在文件中移动文件指针而不读取整个文件。这只会在词典以某种方式结构化时才有帮助,这样您就可以在不阅读所有内容的情况下找到正确的位置,即它必须是一个允许比 O(n) 搜索更好的数据结构(Trie 通常是一个不错的选择,因为萨尔加建议)。