Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用trie设计字典应用程序?_Java_Search_Data Structures - Fatal编程技术网

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

Java 如何使用trie设计字典应用程序?,java,search,data-structures,Java,Search,Data Structures,我曾计划在dictionary应用程序中使用trie数据结构实现,但问题是将10000多个单词加载到trie中。虽然trie去掉了字母的冗余,并且primay中加载的总内存只不过是几kbs,但将所有单词加载到trie中所需的时间仍然需要很多时间n如果用于手机应用程序,则需要更多的时间 有什么可以做的建议吗?您可以提供一个包含所有字典单词的序列化trie,而不是(或者除了)随应用程序一起提供包含字典的数据库。这可以按照您想要的任何方式进行序列化(可能作为数据库或xml文件中的blob),然后可以在

我曾计划在dictionary应用程序中使用trie数据结构实现,但问题是将10000多个单词加载到trie中。虽然trie去掉了字母的冗余,并且primay中加载的总内存只不过是几kbs,但将所有单词加载到trie中所需的时间仍然需要很多时间
n
如果用于手机应用程序,则需要更多的时间

有什么可以做的建议吗?

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


要做到这一点,您可以使用一个部署脚本,该脚本通过遍历所有的dictionary单词来创建trie,将它们放入trie中,然后将trie序列化为某个文件或blob,并将此序列化的trie打包到发布的应用程序中。

实际需要多长时间?我还没有测试,但应该需要很长时间。。我的数据库里有超过8万个单词。应花费相当长的时间,否则手机可能会强制退出应用程序..:/80K不是那么多,我建议你在得出结论之前先测试一下,你可能会感到惊讶。还有,你的目标是什么手机?根据您的需要,如果您只需要检查字典中是否有单词,那么哈希表就可以完成这项工作,并且加载速度会更快。这是JavaScript,但概念适用:也检查一下:谢谢@pin。。有趣的文章:)让我来实施它,并将返回我得到的结果。:)