【发布时间】:2012-11-27 11:13:35
【问题描述】:
我正在为 Android 编写一个 Hangman 应用程序,但遇到了一些加载问题。 当我的应用程序启动时,我会生成一个从 txt 文件中挑选的随机单词。问题是这个文件很重:它几乎有 360'000 个单词(4000 kB),因此选择一个单词需要 10 到 20 秒的时间,我知道这是因为我每次读取文件并选择一个单词我点击生成。
如果我在应用程序启动后读取文件并将其内容放入字符串数组中会是一件好事吗?我真的不知道数组是否可以处理这么多。 否则什么是好的模式?
感谢阅读。
【问题讨论】:
-
发布您的拣货代码,那里可能有很多需要优化的地方。 (一个选项,例如:使它成为一个 sqlite db,在启动时复制它,随机选择顺序,另一个选项:使你的行固定宽度,并跳过(长度 * rand())来选择你的单词)
-
您的数组将是 8000 kb(每个 char 为 2 个字节)+ 360000 * 字符串对象的几个字节,您可以将其四舍五入到大约 10Mb,这是考虑保留在记忆。另外,加载仍然需要 10-20 秒。